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); } } }