public static PolicyWaiverViewModel UpdatePolicyWaiverViewModel( this PolicyWaiverViewModel viewModel, ClientFieldData[] clientFieldData) { var groupClientField = clientFieldData .Where(o => string.IsNullOrEmpty(o.Id) == false) .GroupBy(x => x.Id) .ToList(); var policyForDeleted = clientFieldData.FirstOrDefault(o => o.Name == VerSecurityValues.POLICY_WAIVER_FOR_DELETE); var requestPolicy = clientFieldData.FirstOrDefault(o => o.Name == VerSecurityValues.POLICY_WAIVER_REQUEST_POLICY); var sendPolicy = clientFieldData.FirstOrDefault(o => o.Name == VerSecurityValues.POLICY_WAIVER_SEND_RESPONSE_POLICY); var opcType = clientFieldData.FirstOrDefault(o => o.Name == VerSecurityValues.POLICY_WAIVER_OPC_TYPE); viewModel.IsRequested = requestPolicy != null && requestPolicy.Value == "true"; viewModel.IsResponded = sendPolicy != null && sendPolicy.Value == "true"; int opcTypeId; if (opcType != null && int.TryParse(opcType.Value, out opcTypeId)) { viewModel.OpcTypeId = opcTypeId; } if (policyForDeleted != null && string.IsNullOrEmpty(policyForDeleted.Value) == false) { var policyForDeleteList = policyForDeleted.Value.Split('|').ToList(); viewModel.PolicyWaiverList.ForEach( o => o.IsDeleted = policyForDeleteList.Any(x => x == o.OperationPolicyWaiverId.ToString())); } foreach (var group in groupClientField) { var register = viewModel.PolicyWaiverList .FirstOrDefault(o => o.OperationPolicyWaiverId.ToString() == group.Key); var fieldList = group.ToList(); if (register != null) { ProcessRegisterPolicyWaiver(register, fieldList, viewModel.IsRequested, viewModel.IsResponded); } else { ProcessNewPolicyWaiver(viewModel, fieldList, viewModel.IsRequested); } } return(viewModel); }
private static void ProcessNewPolicyWaiver( PolicyWaiverViewModel viewModel, IList <ClientFieldData> fieldList, bool isRequestPolicy) { var category = fieldList.FirstOrDefault(o => o.Name == VerSecurityValues.POLICY_WAIVER_CATEGORY); var policy = fieldList.FirstOrDefault(o => o.Name == VerSecurityValues.POLICY_WAIVER); var policyJustification = fieldList.FirstOrDefault(o => o.Name == VerSecurityValues.POLICY_WAIVER_JUSTIFICATION); var status = fieldList.FirstOrDefault(o => o.Name == VerSecurityValues.POLICY_WAIVER_STATUS); var newRegister = new PolicyWaiverRowViewModel { IsAdded = true }; if (category != null) { newRegister.PolicyWaiverCategory = new FieldModel { IntValue = Convert.ToInt32(category.Value), IsEdited = true }; } if (policy != null) { newRegister.PolicyWaiver = new FieldModel { TextValue = policy.Value, IsEdited = true }; } if (policyJustification != null) { newRegister.PolicyWaiverJustification = new FieldModel { TextValue = policyJustification.Value, IsEdited = true }; } if (status != null) { newRegister.PolicyWaiverStatus = new FieldModel { IntValue = Convert.ToInt32(status.Value), IsEdited = true }; } if (isRequestPolicy) { newRegister.IsRequested = true; } viewModel.PolicyWaiverList.Add(newRegister); }