public Guid UpdateConfiguration(QueryConfiguration queryConfiguration) { RequiresAgencyAdmin(queryConfiguration.AgencyId); Domain.Administration.Aggregates.Agency.QueryConfiguration config; if (queryConfiguration.Id != Guid.Empty) { config = UnitOfWork.Find <Domain.Administration.Aggregates.Agency.QueryConfiguration>(queryConfiguration.Id); config.QueryId = queryConfiguration.QueryId; config.QueryName = queryConfiguration.QueryName; config.IsEnabled = queryConfiguration.IsEnabled; //Remove any categories that are no longer used for this query var categories = queryConfiguration.QueryCategories.ToList(); //config.QueryCategories.Where(cat => !categories.Exists(c => c.Key.Equals(cat.Name, StringComparison.CurrentCultureIgnoreCase))).ForEach(qc => config.RemoveQueryCategory(qc.Name)); //Add or update the rest of the categories categories.ForEach(cat => config.UpdaterOrCreateQueryCategory(cat.Key, cat.Value)); } else { var agency = UnitOfWork.Find <Agency>(queryConfiguration.AgencyId); config = agency.CreateQueryConfiguration(queryConfiguration.QueryId, queryConfiguration.QueryName, queryConfiguration.IsEnabled); queryConfiguration.QueryCategories.ForEach(cat => config.CreateQueryCategory(cat.Key, cat.Value)); } UnitOfWork.Commit(); return(config.Id); }
private void SetUpQueryConfiguration() { _dtoQueryConfiguration = new DTO.QueryAdmin.QueryConfiguration(); _dtoQueryConfiguration.AgencyId = _agency.Id; _dtoQueryConfiguration.QueryId = 1; _dtoQueryConfiguration.QueryName = "QueryName"; _dtoQueryConfiguration.IsEnabled = true; _dtoQueryConfiguration.QueryCategories = new Dictionary <string, string>(); _dtoQueryConfiguration.QueryCategories.Add("key", "value"); }
public void RemoveConfiguration(QueryConfiguration queryConfiguration) { RequiresAgencyAdmin(queryConfiguration.AgencyId); var queryConfig = UnitOfWork.Find <Domain.Administration.Aggregates.Agency.QueryConfiguration>(queryConfiguration.Id); if (queryConfig == null) { return; } UnitOfWork.Remove(queryConfig); UnitOfWork.Commit(); }