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());
        }
Beispiel #2
0
        public HttpResponseMessage SaveAllCustomFieldTabs(CustomFieldTabsViewModel viewModel)
        {
            SaveAllCustomFieldTabsRequest request = new SaveAllCustomFieldTabsRequest()
            {
                CustomFieldsViewModel = viewModel
            };
            SaveAllCustomFieldTabsResponse response = customFieldService.SaveAllCustomFieldTabs(request);

            return(Request.BuildResponse(response));
        }