public async Task <OutputResponse> Add(ScheduledNotificationEscalationRuleDTO notificationEscalationRule)
        {
            var isFound = await _context.ScheduledNotificationEscalationRules.AnyAsync(x => x.Name.ToLower() == notificationEscalationRule.Name.ToLower());

            if (isFound)
            {
                return(new OutputResponse
                {
                    IsErrorOccured = true,
                    Message = "Notification escalation rule name already exist, duplicates not allowed"
                });
            }

            var mappedScheduledNotificationEscalationRule = new AutoMapperHelper <ScheduledNotificationEscalationRuleDTO, ScheduledNotificationEscalationRules>().MapToObject(notificationEscalationRule);

            mappedScheduledNotificationEscalationRule.RowAction   = "I";
            mappedScheduledNotificationEscalationRule.DateCreated = DateTime.UtcNow;

            await _context.ScheduledNotificationEscalationRules.AddAsync(mappedScheduledNotificationEscalationRule);

            await _context.SaveChangesAsync();

            return(new OutputResponse
            {
                IsErrorOccured = false,
                Message = MessageHelper.AddNewSuccess
            });
        }
Esempio n. 2
0
        public async Task <IActionResult> Update([FromBody] ScheduledNotificationEscalationRuleDTO notificationEscalationRule)
        {
            var outputHandler = await _service.Update(notificationEscalationRule);

            if (outputHandler.IsErrorOccured)
            {
                return(BadRequest(outputHandler.Message));
            }

            return(Ok(outputHandler.Message));
        }
        private async Task <ScheduledNotificationEscalationRuleDTO> GetScheduledNotificationEscalationRule(int ruleId)
        {
            string url = $"{NotificationsApiUrl}ScheduledNotificationEscalationRules/GetById?ruleId={ruleId}";
            var    ScheduledNotificationEscalationRule = new ScheduledNotificationEscalationRuleDTO();

            var accessToken = await HttpContext.GetTokenAsync("access_token");

            var response = await HttpRequestFactory.Get(accessToken, url);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                ScheduledNotificationEscalationRule = response.ContentAsType <ScheduledNotificationEscalationRuleDTO>();
            }
            else
            {
                ModelState.AddModelError("", HttpResponseHandler.Process(response));
            }
            return(ScheduledNotificationEscalationRule);
        }
        public async Task <IActionResult> Edit([Bind] ScheduledNotificationEscalationRuleDTO escalationRule)
        {
            string url = $"{NotificationsApiUrl}ScheduledNotificationEscalationRules/Update";

            var accessToken = await HttpContext.GetTokenAsync("access_token");

            var response = await HttpRequestFactory.Put(accessToken, url, escalationRule);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                AppContextHelper.SetToastMessage("Scheduled notification escalation rule has been successfully updated", MessageType.Success, 1, Response);
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                AppContextHelper.SetToastMessage("Failed to update scheduled notification escalation rule", MessageType.Danger, 1, Response);
                ModelState.AddModelError("", HttpResponseHandler.Process(response));
            }
            return(View(escalationRule));
        }
        public async Task <IActionResult> VerifyDelete(int ruleId)
        {
            string url = $"{NotificationsApiUrl}ScheduledNotificationEscalationRules/Delete?ruleId={ruleId}";
            var    ScheduledNotificationEscalationRule = new ScheduledNotificationEscalationRuleDTO();

            var accessToken = await HttpContext.GetTokenAsync("access_token");

            var response = await HttpRequestFactory.Delete(accessToken, url);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                AppContextHelper.SetToastMessage("Scheduled notification escalation rule has been successfully deleted", MessageType.Success, 1, Response);
                return(RedirectToAction(nameof(Index)));
            }
            else
            {
                AppContextHelper.SetToastMessage("Failed to delete scheduled notification escalation rule", MessageType.Danger, 1, Response);
                ModelState.AddModelError("", HttpResponseHandler.Process(response));
            }
            return(View(await GetScheduledNotificationEscalationRule(ruleId)));
        }
        public async Task <OutputResponse> Update(ScheduledNotificationEscalationRuleDTO notificationEscalationRule)
        {
            var notificationEscalationRuleToUpdate = await _context.ScheduledNotificationEscalationRules.FirstOrDefaultAsync(x => x.RuleId.Equals(notificationEscalationRule.RuleId));

            if (notificationEscalationRuleToUpdate == null)
            {
                return(new OutputResponse
                {
                    IsErrorOccured = true,
                    Message = "Notification escalation rule specified does not exist, update cancelled"
                });
            }

            var isFound = await _context.ScheduledNotificationEscalationRules.Where(x => x.RuleId != notificationEscalationRule.RuleId).AnyAsync(x => x.Name.ToLower() == notificationEscalationRule.Name.ToLower());

            if (isFound)
            {
                return(new OutputResponse
                {
                    IsErrorOccured = true,
                    Message = "Notification escalation rule name already exist, duplicates not allowed"
                });
            }

            //update details
            notificationEscalationRuleToUpdate.Name         = notificationEscalationRule.Name;
            notificationEscalationRuleToUpdate.EscalateTo   = notificationEscalationRule.EscalateTo;
            notificationEscalationRuleToUpdate.Message      = notificationEscalationRule.Message;
            notificationEscalationRuleToUpdate.RowAction    = "U";
            notificationEscalationRuleToUpdate.ModifiedBy   = notificationEscalationRule.CreatedBy;
            notificationEscalationRuleToUpdate.DateModified = DateTime.UtcNow;

            await _context.SaveChangesAsync();

            return(new OutputResponse
            {
                IsErrorOccured = false,
                Message = MessageHelper.UpdateSuccess
            });
        }