Example #1
0
        public async Task <CreateConfigurationItemResponse> CreateConfigurationItem(CreateConfigurationItemRequest request)
        {
            var sessionUser = await _sessionManager.GetUser();

            var response = new CreateConfigurationItemResponse();

            var configuration = await _cache.Configuration();

            var configItem = configuration.Items.FirstOrDefault(c => c.Key == request.Key);

            if (configItem != null)
            {
                response.Notifications.AddError($"A configuration item already exists with the key {request.Key}");
                return(response);
            }

            int id;

            using (var uow = _uowFactory.GetUnitOfWork())
            {
                id = await uow.ConfigurationRepo.CreateConfigurationItem(new Repositories.DatabaseRepos.ConfigurationRepo.Models.CreateConfigurationItemRequest()
                {
                    Key            = request.Key,
                    Description    = request.Description,
                    Is_Client_Side = request.IsClientSide,
                    Boolean_Value  = request.BooleanValue,
                    DateTime_Value = request.DateTimeValue,
                    Date_Value     = request.DateValue,
                    Time_Value     = request.TimeValue,
                    Decimal_Value  = request.DecimalValue,
                    Int_Value      = request.IntValue,
                    Money_Value    = request.MoneyValue,
                    String_Value   = request.StringValue,
                    Created_By     = sessionUser.Id
                });

                uow.Commit();
            }

            _cache.Remove(CacheConstants.ConfigurationItems);

            await _sessionManager.WriteSessionLogEvent(new Models.ManagerModels.Session.CreateSessionLogEventRequest()
            {
                EventKey = SessionEventKeys.ConfigurationCreated,
                Info     = new Dictionary <string, string>()
                {
                    { "Key", request.Key }
                }
            });

            response.Notifications.Add($"Configuration item '{request.Key}' has been created", NotificationTypeEnum.Success);
            return(response);
        }
        public async Task <IActionResult> CreateConfigurationItem(CreateConfigurationItemRequest request)
        {
            if (ModelState.IsValid)
            {
                var response = await _adminService.CreateConfigurationItem(request);

                if (response.IsSuccessful)
                {
                    AddNotifications(response);
                    return(RedirectToAction(nameof(AdminController.ConfigurationManagement)));
                }
                AddFormErrors(response);
            }
            var viewModel = new CreateConfigurationItemViewModel(request);

            return(View(viewModel));
        }
        public async Task <int> CreateConfigurationItem(CreateConfigurationItemRequest request)
        {
            var sqlStoredProc = "sp_configuration_item_create";

            var response = await DapperAdapter.GetFromStoredProcAsync <int>
                           (
                storedProcedureName : sqlStoredProc,
                parameters : request,
                dbconnectionString : DefaultConnectionString,
                sqltimeout : DefaultTimeOut,
                dbconnection : _connection,
                dbtransaction : _transaction);

            if (response == null || response.FirstOrDefault() == 0)
            {
                throw new Exception("No items have been created");
            }
            return(response.FirstOrDefault());
        }
 public CreateConfigurationModel(IConfigurationService configService)
 {
     _configService = configService;
     FormData       = new CreateConfigurationItemRequest();
 }