private static void UpdateEditIndicatorPageViewModelCommon <T>(this EditIndicatorPageViewModel <T> model, ClientFieldData[] formData) where T : new() { var field = formData.FirstOrDefault(x => x.Name == "indicatorTemplate"); if (field != null) { model.Indicator.Common.TemplateVersionId = int.Parse(field.Value); } field = formData.First(x => x.Name == "indicatorNumber"); model.Indicator.Common.IndicatorNumber = null; if (field != null) { var indicatorNumber = field.Value.ToString(); model.Indicator.Common.IndicatorNumber = indicatorNumber; } field = formData.First(x => x.Name == "effectiveDate"); model.Indicator.Common.EffectiveDate = null; if (field != null) { var date = DateTime.ParseExact(field.Value, DATETIME_PARSE_FORMAT, CultureInfo.InvariantCulture); model.Indicator.Common.EffectiveDate = date; } field = formData.First(x => x.Name == "expirationDate"); model.Indicator.Common.ExpirationDate = null; if (field != null) { var date = DateTime.ParseExact(field.Value, DATETIME_PARSE_FORMAT, CultureInfo.InvariantCulture); model.Indicator.Common.ExpirationDate = date; } field = formData.First(x => x.Name == "indicatorNameEn"); if (field != null) { model.Indicator.Common.IndicatorNameEn = field.Value; } field = formData.FirstOrDefault(x => x.Name == "indicatorNameEs"); model.Indicator.Common.IndicatorNameEs = string.Empty; if (field != null) { model.Indicator.Common.IndicatorNameEs = field.Value; } field = formData.FirstOrDefault(x => x.Name == "indicatorNamePt"); model.Indicator.Common.IndicatorNamePt = string.Empty; if (field != null) { model.Indicator.Common.IndicatorNamePt = field.Value; } field = formData.FirstOrDefault(x => x.Name == "indicatorNameFr"); model.Indicator.Common.IndicatorNameFr = string.Empty; if (field != null) { model.Indicator.Common.IndicatorNameFr = field.Value; } field = formData.FirstOrDefault(x => x.Name == "unitMeasure"); model.Indicator.Common.UnitMeasureId = null; if (field != null) { model.Indicator.Common.UnitMeasureId = int.Parse(field.Value); } field = formData.FirstOrDefault(x => x.Name == "unitMeasureEn"); model.Indicator.Common.UnitMeasureEn = string.Empty; if (field != null) { model.Indicator.Common.UnitMeasureEn = field.Value; } field = formData.FirstOrDefault(x => x.Name == "unitMeasureEs"); model.Indicator.Common.UnitMeasureEs = string.Empty; if (field != null) { model.Indicator.Common.UnitMeasureEs = field.Value; } field = formData.FirstOrDefault(x => x.Name == "unitMeasurePt"); model.Indicator.Common.UnitMeasurePt = string.Empty; if (field != null) { model.Indicator.Common.UnitMeasurePt = field.Value; } field = formData.FirstOrDefault(x => x.Name == "unitMeasureFr"); model.Indicator.Common.UnitMeasureFr = string.Empty; if (field != null) { model.Indicator.Common.UnitMeasureFr = field.Value; } field = formData.FirstOrDefault(x => x.Name == "strAlingmentImageAsociated"); model.Indicator.Common.StrAlingImageId = null; if (field != null && !string.IsNullOrEmpty(field.Value)) { model.Indicator.Common.StrAlingImageId = int.Parse(field.Value); } model.Indicator.Common.TechnicalFields.Clear(); var technicalFields = formData.Where(x => x.Name == "technicalFieldValue"); foreach (var item in technicalFields) { var it = new TechnicalFieldViewModel() { TechnicalFieldTemplateId = int.Parse(item.Id), Value = item.Value }; model.Indicator.Common.TechnicalFields.Add(it); } }
private static void UpdateTemplateCommon(this EditTemplatePageViewModel model, ClientFieldData[] formData) { ClientFieldData field = null; field = formData.FirstOrDefault(x => x.Name == "version"); if (field != null) { model.Template.Common.Version = field.Value; } field = formData.FirstOrDefault(x => x.Name == "description"); if (field != null) { model.Template.Common.Description = field.Value; } // Technical Field Data // Remove default technical field model.Template.Common.TechnicalFields.RemoveAll(x => x.TechnicalFieldTemplateId == 0); var techincals = formData.Where(x => x.Name == "technicalFieldName" || x.Name.Contains("typeTF-new-") || x.Name.Contains("typeTFValue-") || x.Name.Contains("IsActive")); var oldTechnical = techincals.Where(x => x.ExtraData.ContainsKey("data-persist-old-id")); var newTechnical = techincals.Where(x => x.ExtraData.ContainsKey("data-persist-new-id")); var oldGrouped = oldTechnical.GroupBy(x => x.ExtraData.FirstOrDefault(y => y.Key == "data-persist-old-id")); var newGrouped = newTechnical.GroupBy(x => x.ExtraData.FirstOrDefault(y => y.Key == "data-persist-new-id")); List <TechnicalFieldViewModel> newTechnicalFields = new List <TechnicalFieldViewModel>(); foreach (var oldItem in oldGrouped) { var technicalModel = model.Template.Common.TechnicalFields.First(x => x.TechnicalFieldTemplateId.ToString() == oldItem.Key.Value); field = oldItem.FirstOrDefault(x => x.Name == "technicalFieldName"); if (field != null) { technicalModel.Name = field.Value; } field = oldItem.FirstOrDefault(x => x.Name.Contains("IsActive")); if (field != null) { technicalModel.IsActive = !GetBoolValue(field.Value); } field = oldItem.FirstOrDefault(x => x.Name.Contains("typeTFValue-")); if (field != null) { technicalModel.Type = field.Value == "text" ? TechnicalFieldTypeEnum.Text : TechnicalFieldTypeEnum.Bool; } newTechnicalFields.Add(technicalModel); } foreach (var newItem in newGrouped) { var technicalModel = new TechnicalFieldViewModel(); field = newItem.FirstOrDefault(x => x.Name == "technicalFieldName"); if (field != null) { technicalModel.Name = field.Value; } field = newItem.FirstOrDefault(x => x.Name.Contains("typeTF-new-")); if (field != null) { technicalModel.Type = field.Value == "text" ? TechnicalFieldTypeEnum.Text : TechnicalFieldTypeEnum.Bool; } field = newItem.FirstOrDefault(x => x.Name == "IsActive"); if (field != null) { technicalModel.IsActive = !GetBoolValue(field.Value); } newTechnicalFields.Add(technicalModel); } model.Template.Common.TechnicalFields = newTechnicalFields; }