private bool DataPointConfigurationAlreadyExists(NewDataPointConfiguration newDataPointConfiguration) { var dataPointConfiguration = Context.DataPointConfigurations.Where(x => x.OfficeId == newDataPointConfiguration.OfficeId && x.ProgramId == newDataPointConfiguration.ProgramId && x.ProjectId == newDataPointConfiguration.ProjectId && x.DataPointCategoryPropertyId == newDataPointConfiguration.DataPointCategoryPropertyId ).FirstOrDefault(); return(dataPointConfiguration != null); }
private DataPointConfiguration DoCreate(NewDataPointConfiguration newDataPointConfiguration) { var dataPointConfiguration = new DataPointConfiguration { OfficeId = newDataPointConfiguration.OfficeId, ProgramId = newDataPointConfiguration.ProgramId, ProjectId = newDataPointConfiguration.ProjectId, DataPointCategoryPropertyId = newDataPointConfiguration.DataPointCategoryPropertyId }; this.Context.DataPointConfigurations.Add(dataPointConfiguration); return(dataPointConfiguration); }
private bool ModelHasOneResourceId(NewDataPointConfiguration newDataPointConfiguration) { var hasOneId = false; if ((newDataPointConfiguration.OfficeId != null && newDataPointConfiguration.ProgramId == null && newDataPointConfiguration.ProjectId == null) || (newDataPointConfiguration.OfficeId == null && newDataPointConfiguration.ProgramId != null && newDataPointConfiguration.ProjectId == null) || (newDataPointConfiguration.OfficeId == null && newDataPointConfiguration.ProgramId == null && newDataPointConfiguration.ProjectId != null)) { hasOneId = true; } return(hasOneId); }
private async Task <bool> ResourceExists(NewDataPointConfiguration newDataPointConfiguration) { Object resource = null; if (newDataPointConfiguration.OfficeId != null) { resource = await Context.Organizations.FindAsync(newDataPointConfiguration.OfficeId); } else if (newDataPointConfiguration.ProgramId != null) { resource = await Context.Programs.FindAsync(newDataPointConfiguration.ProgramId); } else if (newDataPointConfiguration.ProjectId != null) { resource = await Context.Projects.FindAsync(newDataPointConfiguration.ProjectId); } return(resource != null); }
/// <summary> /// Create a data point configuration /// </summary> /// <param name="newDataPointConfiguration">Data point configuration to create</param> /// <returns>Data point configuration created</returns> public async Task <DataPointConfiguration> CreateDataPointConfigurationAsync(NewDataPointConfiguration newDataPointConfiguration) { var modelHasOneResouceId = ModelHasOneResourceId(newDataPointConfiguration); if (!modelHasOneResouceId) { throw new EcaBusinessException(MODEL_HAS_LESS_THAN_OR_MORE_THAN_ONE_RESOURCE_ID_ERROR); } var dataPointConfigurationAlreadyExists = DataPointConfigurationAlreadyExists(newDataPointConfiguration); if (dataPointConfigurationAlreadyExists) { throw new EcaBusinessException(DATA_POINT_CONFIGURATION_ALREADY_EXISTS_ERROR); } var resourceExists = await ResourceExists(newDataPointConfiguration); if (!resourceExists) { throw new EcaBusinessException(RESOURCE_DOES_NOT_EXIST_ERROR); } var dataPointConfiguration = DoCreate(newDataPointConfiguration); return(dataPointConfiguration); }