Madhav Sharma

Madhav Sharma

  • 818
  • 892
  • 36.5k

How to update data in multiple tables at same time in mvc

Apr 3 2020 1:28 AM

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:

  1. public MessageResult SaveAndUpdateFranchisee(UserViewModel model) {  
  2.  var result = new MessageResult();  
  3.  try {  
  4.   User userData = new User();  
  5.   Franchise franchiseData = new Franchise();  
  6.   var ExistUser = db.Users.Where(a => a.Id == model.Id).FirstOrDefault(); //Update record  
  7.   if (model.Id > 0) {  
  8.    Fee feeData = new Fee {  
  9.     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  
  10.    };  
  11.    ExistUser.Email = model.Email;  
  12.    //var pwd = SecutiryServices.EncodePasswordToBase64(model.Password);   
  13.    //userData.Password = pwd;ExistUser.Password = model.Password;  
  14.    ExistUser.FirstName = model.FirstName;  
  15.    ExistUser.MiddleName = model.MiddleName;  
  16.    ExistUser.LastName = model.LastName;  
  17.    ExistUser.FullName = model.FullName;  
  18.    ExistUser.MobileNo = model.MobileNo;  
  19.    ExistUser.ModifyDate = DateTime.Now;  
  20.    franchiseData.Name = model.FullName;  
  21.    franchiseData.MobileNo = model.MobileNo;  
  22.    franchiseData.AlternateNo = model.AlternetNo;  
  23.    franchiseData.CompanyPhoneNo = model.PhoneNo;  
  24.    franchiseData.Address = model.Address;  
  25.    franchiseData.City = model.City;  
  26.    franchiseData.State = model.State;  
  27.    franchiseData.PinCode = model.PinCode;  
  28.    franchiseData.CompanyName = model.CompanyName;  
  29.    franchiseData.CompanyAddress = model.CompanyAddress;  
  30.    franchiseData.CompanyCity = model.CompanyCity;  
  31.    franchiseData.CompanyState = model.CompanyState;  
  32.    franchiseData.CompanyAddress = model.CompanyAddress;  
  33.    franchiseData.CompanyPinCode = model.CompanyPinCode;  
  34.    franchiseData.ModifiedDate = DateTime.Now;  
  35.    userData.Franchises.Add(franchiseData);  
  36.    foreach(var item in userData.Franchises) {  
  37.     item.Fees.Add(feeData);  
  38.    }  
  39.    db.Users.Attach(userData);  
  40.    db.Entry(userData).State = System.Data.Entity.EntityState.Modified;  
  41.    //db.Users.Add(userData);  
  42.    db.SaveChanges();  
  43.    result.Message = "Your franchise has been updated successfully..";  
  44.    result.Status = true;  
  45.   }  
  46.   //For Insert recored..   
  47.   else {  
  48.    Fee feeData = new Fee {  
  49.     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  
  50.    };  
  51.    userData.Email = model.Email;  
  52.    //var pwd = SecutiryServices.EncodePasswordToBase64(model.Password);   
  53.    //userData.Password = pwd;userData.Password = model.Password;  
  54.    userData.FirstName = model.FirstName;  
  55.    userData.FullName = model.FirstName + " " + model.LastName;  
  56.    userData.LastName = model.LastName;  
  57.    userData.MobileNo = model.MobileNo;  
  58.    userData.IsActive = true;  
  59.    userData.IsDelete = false;  
  60.    userData.CreatedDate = DateTime.Now;  
  61.    userData.UserTypeId = 2;  
  62.    franchiseData.CompanyId = model.CurrentUserId;  
  63.    franchiseData.Name = userData.FullName;  
  64.    franchiseData.MobileNo = model.MobileNo;  
  65.    franchiseData.AlternateNo = model.AlternetNo;  
  66.    franchiseData.Address = model.Address;  
  67.    franchiseData.City = model.City;  
  68.    franchiseData.State = model.State;  
  69.    franchiseData.PinCode = model.PinCode;  
  70.    franchiseData.CompanyName = model.CompanyName;  
  71.    franchiseData.CompanyPhoneNo = model.PhoneNo;  
  72.    franchiseData.CompanyAddress = model.CompanyAddress;  
  73.    franchiseData.CompanyCity = model.CompanyCity;  
  74.    franchiseData.CompanyState = model.CompanyState;  
  75.    franchiseData.CompanyAddress = model.CompanyAddress;  
  76.    franchiseData.CompanyPinCode = model.CompanyPinCode;  
  77.    franchiseData.CreatedDate = DateTime.Now;  
  78.    franchiseData.IsActive = true;  
  79.    userData.Franchises.Add(franchiseData);  
  80.    foreach(var item in userData.Franchises) {  
  81.     item.Fees.Add(feeData);  
  82.    }  
  83.    db.Users.Add(userData);  
  84.    db.SaveChanges();  
  85.    //db.AddUserRole(userData.Id, 4);  
  86.    result.Message = "Your franchisee has been created successfully..";  
  87.    result.Status = true;  
  88.   }  
  89.   return result;  
  90.  } catch (Exception ex) {  
  91.   result.Message = "We are unable to process your request at this time. Please try again later.";  
  92.   result.Status = false;  
  93.   return result;  
  94.  }  
  95. } 

Answers (1)