Ejemplo n.º 1
0
        public Checklist AddItem(ChecklistRowViewModel item)
        {
            if (_items == null)
            {
                _items = new List <ChecklistRowViewModel>();
            }

            _items.Add(item);
            return(this);
        }
        public static ProcurementDetailViewModel UpdateChecklist(this ProcurementDetailViewModel model, ClientFieldData[] formData)
        {
            ClientFieldData field;
            var inputsChecklist = new string[] 
            {
                "isComplete-checklist",
                "baselineDate-checklist",
                "updatePlanningDate-checklist",
                "completionDate-checklist",
            };

            var fieldsChecklist = formData.Where(x => !string.IsNullOrWhiteSpace(x.Id) && inputsChecklist.Any(y => x.Name == y));
            var fieldsChecklistGrouped = fieldsChecklist.GroupBy(x => x.Id);

            model.ChecklistTab.Items.Clear();

            foreach (var checklistItem in fieldsChecklistGrouped)
            {
                var modelItem = new ChecklistRowViewModel() { Id = checklistItem.Key.ConvertToInt(0) };

                field = checklistItem.FirstOrDefault(x => x.Name == inputsChecklist[0]);
                modelItem.MilestoneIsComplete = field.ConvertToBool();

                field = checklistItem.FirstOrDefault(x => x.Name == inputsChecklist[1]);
                modelItem.BaselineDate = field.ConvertToNullableDateTime();

                field = checklistItem.FirstOrDefault(x => x.Name == inputsChecklist[2]);
                modelItem.UpdatedPlanningDate = field.ConvertToNullableDateTime();

                field = checklistItem.FirstOrDefault(x => x.Name == inputsChecklist[3]);
                modelItem.CompletionDate = field.ConvertToNullableDateTime();

                model.ChecklistTab.Items.Add(modelItem);
            }

            return model;
        }
        private static void UpdateCheckList(this List <ChecklistRowViewModel> viewmodel, ClientFieldData[] formData, string table)
        {
            var itemsTable = formData.Where(x => x.Name.Contains("isCompleted") ||
                                            x.Name.Contains("dateCompleted"));
            var itemsList = itemsTable.Where(x => x.Id != null).GroupBy(x => x.Id);

            var             newCheckListValues = new List <ChecklistRowViewModel>();
            ClientFieldData field;

            foreach (var item in itemsList)
            {
                var model = new ChecklistRowViewModel();
                model.ChecklistStageModalityItemId = int.Parse(item.Key);

                field = item.FirstOrDefault(x => x.Name == "dateCompleted");
                model.DateCompleted = field.ConvertToNullableDateTime();

                field           = item.FirstOrDefault(x => x.Name == "isCompleted");
                model.Completed = field.ConvertToBool();

                newCheckListValues.Add(model);
            }

            foreach (var newChecklistItem in newCheckListValues)
            {
                var oldChecklistItem = viewmodel.First(x => x.ChecklistStageModalityItemId == newChecklistItem.ChecklistStageModalityItemId);
                if ((newChecklistItem.Completed != oldChecklistItem.Completed) || (newChecklistItem.DateCompleted != oldChecklistItem.DateCompleted))
                {
                    oldChecklistItem.Completed     = newChecklistItem.Completed;
                    oldChecklistItem.DateCompleted = newChecklistItem.DateCompleted;
                }
                else
                {
                    viewmodel.Remove(oldChecklistItem);
                }
            }
        }