Ejemplo n.º 1
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 2
0
 public DbEntityEntry <FlexData> Entry(FlexData flexData)
 {
     return(Context.Entry(flexData));
 }
Ejemplo n.º 3
0
 public void Delete(FlexData flexData)
 {
     context.FlexData.Remove(flexData);
 }
Ejemplo n.º 4
0
 public void Attach(FlexData flexData)
 {
     context.FlexData.Attach(flexData);
 }
Ejemplo n.º 5
0
 //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));
            }
        }