public async Task <JsonResult> SaveAsync(FieldForceViewModel record) { try { FieldForceModel model = new FieldForceModel(_unitOfWork); if (ModelState.IsValid) { await model.SaveAsync(record); logger.Debug("Fieldforce saved successfully."); return(Json(new { result = true }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { result = false }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { logger.Error("Error while invoking Save action method: ", ex); return(Json(new { result = false, error = ex.Message }, JsonRequestBehavior.AllowGet)); } }
public async Task <int> SaveAsync(FieldForceViewModel record) { FieldForce fieldForce = null; FieldForceAddress address = null; if (record.Id != null) { fieldForce = await _unitOfWork.FieldForces.GetAsync(record.Id.Value); if (fieldForce == null) { throw new Exception("Invalid Fieldforce Id"); } fieldForce.UpdatedBy = System.Web.HttpContext.Current.User.Identity.Name; fieldForce.UpdatedDate = DateTime.Now; address = fieldForce.Address; } else { fieldForce = new FieldForce(); fieldForce.CreatedBy = System.Web.HttpContext.Current.User.Identity.Name; } if (address == null) { address = new FieldForceAddress(); address.CreatedBy = System.Web.HttpContext.Current.User.Identity.Name; } else { address.UpdatedBy = System.Web.HttpContext.Current.User.Identity.Name; address.UpdatedDate = DateTime.Today; } fieldForce.Code = record.Code; fieldForce.Name = record.Name; fieldForce.Email = record.Email; fieldForce.Phone = record.Phone; address.AddressLine1 = record.AddressLine1; address.AddressLine2 = record.AddressLine2; address.City = record.City; address.State = record.State; address.Zip = record.ZipCode; fieldForce.Address = address; fieldForce.MarketHierarchyId = record.MarketHierarchyId; if (fieldForce.Distributors != null) { fieldForce.Distributors.Clear(); } else { fieldForce.Distributors = new List <Distributor>(); } if (record.DistributorIds != null && record.DistributorIds.Count > 0) { foreach (int id in record.DistributorIds) { Distributor distributor = _unitOfWork.Distributors.Get(id); if (distributor != null) { fieldForce.Distributors.Add(distributor); } } } if (fieldForce.Id <= 0) { _unitOfWork.FieldForces.Add(fieldForce); } return(await _unitOfWork.CompleteAsync()); }