public async Task <bool> UpdateProjectSettings(ProjectSettingsModel projectSettingsModel) { //Set the ProjectSettingsModel data to AdminMasterSettings entity model. var adminMasterSettings = new AdminMasterSettings() { Id = projectSettingsModel.Id, ProjectId = projectSettingsModel.ProjectId, CreatedItemStatus = projectSettingsModel.CreatedItemStatus, DefaultAssignment = projectSettingsModel.DefaultAssignment, VstdeskActive = projectSettingsModel.VSTDeskActive, CreatedItemType = projectSettingsModel.CreatedItemType, EditableFields = getValues(projectSettingsModel.EditableFields), Layout = getValues(projectSettingsModel.Layout), GridVisibleFields = getValues(projectSettingsModel.GridVisibleFields), Status = string.Join(",", projectSettingsModel.WorkItemsState.Where(x => x.IsSelected == true).Select(y => y.Name)),// getValues(projectSettingsModel.Status), WorkItems = string.Join(",", projectSettingsModel.WorkItemsList.Where(x => x.IsSelected == true).Select(y => y.Name)) }; List <DB.Entities.CustomStatus> customStatus = new List <DB.Entities.CustomStatus>(); projectSettingsModel.CustomStatus.ForEach(cs => customStatus.Add(new DB.Entities.CustomStatus() { Id = cs.Id, DisplayName = cs.DisplayName, ProjectId = cs.ProjectId, StatusName = cs.StatusName }) ); bool isSuccess = await _projectData.UpdateProjectSettings(adminMasterSettings, customStatus); return(isSuccess); }
/// <summary> /// Set ProjectSettingsModel Settings by EntityModel /// </summary> /// <param name="projectSttings"></param> /// <returns></returns> private async Task <ProjectSettingsModel> SetProjectSettings(AdminMasterSettings projectSettings, int projectId) { ProjectSettingsModel projectSettingsModel = new ProjectSettingsModel { Id = projectSettings.Id, ProjectId = projectSettings.ProjectId, VSTDeskActive = projectSettings.VstdeskActive, CreatedItemStatus = projectSettings.CreatedItemStatus, CreatedItemType = projectSettings.CreatedItemType, DefaultAssignment = projectSettings.DefaultAssignment, Layout = new Models.Layout(), GridVisibleFields = new GridVisibleFieldsModel(), WorkItemsList = await setWorkItemsModel(projectSettings.WorkItems != null?projectSettings.WorkItems.Split(',').ToList() : new List <string>()), EditableFields = new Models.EditableFields(), WorkItemsState = await SetItemStatus(projectSettings.Status != null?projectSettings.Status.Split(",").ToList() : new List <string>(), projectId) //new Models.Status() }; SetProperties(projectSettings.Layout.Replace(" ", ""), typeof(Models.Layout), projectSettingsModel.Layout); SetProperties(projectSettings.GridVisibleFields.Replace(" ", ""), typeof(Models.GridVisibleFieldsModel), projectSettingsModel.GridVisibleFields); SetProperties(projectSettings.EditableFields.Replace(" ", ""), typeof(Models.EditableFields), projectSettingsModel.EditableFields); return(projectSettingsModel); }
public async Task <bool> UpdateProjectSettings(AdminMasterSettings adminMasterSettings, List <DB.Entities.CustomStatus> customStatus) { var adminsettings = _appDbContext.AdminMasterSettings.FirstOrDefault(x => x.ProjectId == adminMasterSettings.ProjectId); if (adminsettings != null) { adminsettings.ProjectId = adminMasterSettings.ProjectId; adminsettings.Status = adminMasterSettings.Status; adminsettings.Layout = adminMasterSettings.Layout; adminsettings.VstdeskActive = adminMasterSettings.VstdeskActive; adminsettings.WorkItems = adminMasterSettings.WorkItems; adminsettings.EditableFields = adminMasterSettings.EditableFields; adminsettings.CreatedItemStatus = adminMasterSettings.CreatedItemStatus; adminsettings.CreatedItemType = adminMasterSettings.CreatedItemType; adminsettings.DefaultAssignment = adminMasterSettings.DefaultAssignment; adminsettings.GridVisibleFields = adminMasterSettings.GridVisibleFields; _appDbContext.Update(adminsettings); var listCustomStatus = _appDbContext.CustomStatus.Where(x => x.ProjectId == adminMasterSettings.ProjectId).ToList(); listCustomStatus.ForEach(x => { var custom = customStatus.FirstOrDefault(y => y.StatusName == x.StatusName); x.DisplayName = custom.DisplayName; } ); _appDbContext.UpdateRange(listCustomStatus); return(await _appDbContext.SaveChangesAsync() > 0); } return(false); }