Here I am able to add the data in more than one table. Let i have 3 tables User, Franchise and Fee.
I am not able to update the data in more than one table,it throwing the exception:
- public MessageResult SaveAndUpdateFranchisee(UserViewModel model) {
- var result = new MessageResult();
- try {
- User userData = new User();
- Franchise franchiseData = new Franchise();
- var ExistUser = db.Users.Where(a => a.Id == model.Id).FirstOrDefault();
- if (model.Id > 0) {
- Fee feeData = new Fee {
- FranchiseeFee = model.FranchiseeFee, PaymentTermsFranchiseFee = model.PaymentTermsFranchiseFee, EquipmentCost = model.EquipmentCost, PaymentTermsEquipmentCost = model.PaymentTermsEquipmentCost, OtherFee = model.OtherFee, PaymentTermsOtherFee = model.PaymentTermsOtherFee, ConsumableStock = model.ConsumableStock, PaymentTermsConsumableStock = model.PaymentTermsConsumableStock, FrozenFoodStock = model.FrozenFoodStock, PaymentTermsFrozenFoodStock = model.PaymentTermsFrozenFoodStock, TotalAmountDue = model.TotalAmountDue, TotalAmountPaid = model.TotalAmountPaid, BalanceAmount = model.BalanceAmount, LoyaltyFeePercentage = model.LoyaltyFeePercentage, FixedMonthlyFee = model.FixedMonthlyFee, Note = model.Note, UserId = model.CurrentUserId, LOIDocUrl = model.LOIDocUrl, ModifiedDate = DateTime.Now
- };
- ExistUser.Email = model.Email;
-
-
- ExistUser.FirstName = model.FirstName;
- ExistUser.MiddleName = model.MiddleName;
- ExistUser.LastName = model.LastName;
- ExistUser.FullName = model.FullName;
- ExistUser.MobileNo = model.MobileNo;
- ExistUser.ModifyDate = DateTime.Now;
- franchiseData.Name = model.FullName;
- franchiseData.MobileNo = model.MobileNo;
- franchiseData.AlternateNo = model.AlternetNo;
- franchiseData.CompanyPhoneNo = model.PhoneNo;
- franchiseData.Address = model.Address;
- franchiseData.City = model.City;
- franchiseData.State = model.State;
- franchiseData.PinCode = model.PinCode;
- franchiseData.CompanyName = model.CompanyName;
- franchiseData.CompanyAddress = model.CompanyAddress;
- franchiseData.CompanyCity = model.CompanyCity;
- franchiseData.CompanyState = model.CompanyState;
- franchiseData.CompanyAddress = model.CompanyAddress;
- franchiseData.CompanyPinCode = model.CompanyPinCode;
- franchiseData.ModifiedDate = DateTime.Now;
- userData.Franchises.Add(franchiseData);
- foreach(var item in userData.Franchises) {
- item.Fees.Add(feeData);
- }
- db.Users.Attach(userData);
- db.Entry(userData).State = System.Data.Entity.EntityState.Modified;
-
- db.SaveChanges();
- result.Message = "Your franchise has been updated successfully..";
- result.Status = true;
- }
-
- else {
- Fee feeData = new Fee {
- FranchiseeFee = model.FranchiseeFee, PaymentTermsFranchiseFee = model.PaymentTermsFranchiseFee, EquipmentCost = model.EquipmentCost, PaymentTermsEquipmentCost = model.PaymentTermsEquipmentCost, OtherFee = model.OtherFee, PaymentTermsOtherFee = model.PaymentTermsOtherFee, ConsumableStock = model.ConsumableStock, PaymentTermsConsumableStock = model.PaymentTermsConsumableStock, FrozenFoodStock = model.FrozenFoodStock, PaymentTermsFrozenFoodStock = model.PaymentTermsFrozenFoodStock, TotalAmountDue = model.TotalAmountDue, TotalAmountPaid = model.TotalAmountPaid, BalanceAmount = model.BalanceAmount, LoyaltyFeePercentage = model.LoyaltyFeePercentage, FixedMonthlyFee = model.FixedMonthlyFee, Note = model.Note, UserId = model.CurrentUserId, LOIDocUrl = model.LOIDocUrl, CreatedDate = DateTime.Now
- };
- userData.Email = model.Email;
-
-
- userData.FirstName = model.FirstName;
- userData.FullName = model.FirstName + " " + model.LastName;
- userData.LastName = model.LastName;
- userData.MobileNo = model.MobileNo;
- userData.IsActive = true;
- userData.IsDelete = false;
- userData.CreatedDate = DateTime.Now;
- userData.UserTypeId = 2;
- franchiseData.CompanyId = model.CurrentUserId;
- franchiseData.Name = userData.FullName;
- franchiseData.MobileNo = model.MobileNo;
- franchiseData.AlternateNo = model.AlternetNo;
- franchiseData.Address = model.Address;
- franchiseData.City = model.City;
- franchiseData.State = model.State;
- franchiseData.PinCode = model.PinCode;
- franchiseData.CompanyName = model.CompanyName;
- franchiseData.CompanyPhoneNo = model.PhoneNo;
- franchiseData.CompanyAddress = model.CompanyAddress;
- franchiseData.CompanyCity = model.CompanyCity;
- franchiseData.CompanyState = model.CompanyState;
- franchiseData.CompanyAddress = model.CompanyAddress;
- franchiseData.CompanyPinCode = model.CompanyPinCode;
- franchiseData.CreatedDate = DateTime.Now;
- franchiseData.IsActive = true;
- userData.Franchises.Add(franchiseData);
- foreach(var item in userData.Franchises) {
- item.Fees.Add(feeData);
- }
- db.Users.Add(userData);
- db.SaveChanges();
-
- result.Message = "Your franchisee has been created successfully..";
- result.Status = true;
- }
- return result;
- } catch (Exception ex) {
- result.Message = "We are unable to process your request at this time. Please try again later.";
- result.Status = false;
- return result;
- }
- }