public void SaveFlexData(IEnumerable <SaveFlexDataVM> models, int recordId) { if (models != null && models.Count() > 0) { SaveFlexDataVM firstModel = models.FirstOrDefault(); List <FlexData> oldFlexData = HrUnitOfWork.PageEditorRepository.GetSourceFlexData(firstModel.PageId, firstModel.SourceId).ToList(); foreach (var model in models) { //--flexData FlexData flexData = oldFlexData.FirstOrDefault(fd => fd.Id == model.flexId); //Delete from flexData if not exists and value == null if (model.Value != null) { if (flexData == null) //Add { flexData = new FlexData() { PageId = model.PageId, SourceId = (model.SourceId == 0 ? recordId : model.SourceId), TableName = model.TableName, ColumnName = model.ColumnName, Value = model.Value, ValueId = model.ValueId }; HrUnitOfWork.PageEditorRepository.Add(flexData); } else //Update { flexData.Value = model.Value; flexData.ValueId = model.ValueId; HrUnitOfWork.PageEditorRepository.Attach(flexData); HrUnitOfWork.PageEditorRepository.Entry(flexData).State = EntityState.Modified; } } else if (flexData != null) //Delete { HrUnitOfWork.PageEditorRepository.Delete(flexData); } } } }
public DbEntityEntry <FlexData> Entry(FlexData flexData) { return(Context.Entry(flexData)); }
public void Delete(FlexData flexData) { context.FlexData.Remove(flexData); }
public void Attach(FlexData flexData) { context.FlexData.Attach(flexData); }
//Flex Data public void Add(FlexData flexData) { context.FlexData.Add(flexData); }
public ActionResult UpdateFlexData(IEnumerable <FlexDataViewModel> models, IEnumerable <OptionsViewModel> options) { var datasource = new DataSource <FlexDataViewModel>(); datasource.Data = models; datasource.Total = models.Count(); var firstModel = models.FirstOrDefault(); List <FlexData> result = new List <FlexData>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { var errors = _hrUnitOfWork.CompanyRepository.Check(new CheckParm { CompanyId = CompanyId, ObjectName = "FlexData", TableName = "FlexData", Columns = Models.Utils.GetModifiedRows(ModelState.Where(a => a.Key.Contains("models"))), ParentColumn = "PageId", Culture = Language }); if (errors.Count() > 0) { datasource.Errors = errors; return(Json(datasource)); } } var oldFlexData = _hrUnitOfWork.PageEditorRepository.GetSourceFlexData(firstModel.PageId, firstModel.SourceId); foreach (FlexDataViewModel model in models) { //--flexData var flexData = oldFlexData.FirstOrDefault(fd => fd.Id == model.Id); //Don't save in flexData table if not exists and value == null if (flexData == null && model.Value != null) //Add { flexData = new FlexData() { PageId = model.PageId, SourceId = model.SourceId, TableName = model.TableName, ColumnName = model.ColumnName, //title Value = getValue(model), ValueId = model.ValueId }; result.Add(flexData); _hrUnitOfWork.PageEditorRepository.Add(flexData); } else if (flexData != null) //Update { flexData.Value = getValue(model); flexData.ValueId = model.ValueId; _hrUnitOfWork.PageEditorRepository.Attach(flexData); _hrUnitOfWork.PageEditorRepository.Entry(flexData).State = EntityState.Modified; } } datasource.Errors = SaveChanges(Language); } else { datasource.Errors = Models.Utils.ParseErrors(ModelState.Values); } datasource.Data = (from m in models join r in result on m.ColumnName equals r.ColumnName into g from r in g.DefaultIfEmpty() select new FlexDataViewModel { ColumnName = m.ColumnName, Title = m.Title, Id = (r == null ? m.Id : r.Id), PageId = m.PageId, TableName = m.TableName, SourceId = m.SourceId, Value = m.Value, ValueId = m.ValueId, CodeName = m.CodeName, InputType = m.InputType, IsUnique = m.IsUnique, Max = m.Max, Min = m.Min, Pattern = m.Pattern, PlaceHolder = m.PlaceHolder, Required = m.Required, UniqueColumns = m.UniqueColumns, ValueText = m.ValueText, ObjectName = m.ObjectName, Version = m.Version }).ToList(); if (datasource.Errors.Count() > 0) { return(Json(datasource)); } else { return(Json(datasource.Data)); } }