public SaveAllCustomFieldTabsResponse SaveAllCustomFieldTabs(SaveAllCustomFieldTabsRequest request) { Logger.Current.Verbose("Request received to insert a new CustomFieldTab with name : " + request.AccountId); IEnumerable <CustomFieldTab> cusmFieldTabs = Mapper.Map <IEnumerable <CustomFieldTabViewModel>, IEnumerable <CustomFieldTab> >(request.CustomFieldsViewModel.CustomFieldTabs); var customFields = cusmFieldTabs.SelectMany(i => i.Sections).SelectMany(g => g.CustomFields).Where(i => !i.IsLeadAdapterField).Select(i => i.Title).ToList(); var duplicates = customFields.GroupBy(s => s).SelectMany(grp => grp.Skip(1)); var duplicatefields = string.Join("',' ", duplicates); if (duplicates.Any()) { var message = "Fields with name(s) '" + duplicatefields + "' already exist. Please choose different name(s)."; throw new UnsupportedOperationException(message); } foreach (CustomFieldTab customFieldTab in cusmFieldTabs) { bool isCustomFieldTabNameUnique = customFieldRepository.IsCustomFieldTabNameUnique(customFieldTab); isCustomFieldTabValid(customFieldTab); if (!isCustomFieldTabNameUnique) { var message = "[|Custom Field Tab with name|] \"" + customFieldTab.Name + "\" [|already exists. Please choose a different name.|]"; throw new UnsupportedOperationException(message); } if (customFieldTab.Id > 0) { customFieldRepository.Update(customFieldTab); } else { customFieldRepository.Insert(customFieldTab); } unitOfWork.Commit(); } return(new SaveAllCustomFieldTabsResponse()); }
public HttpResponseMessage SaveAllCustomFieldTabs(CustomFieldTabsViewModel viewModel) { SaveAllCustomFieldTabsRequest request = new SaveAllCustomFieldTabsRequest() { CustomFieldsViewModel = viewModel }; SaveAllCustomFieldTabsResponse response = customFieldService.SaveAllCustomFieldTabs(request); return(Request.BuildResponse(response)); }