public async Task <IActionResult> CreateTicketStatus([FromBody] CreateSupportTicketStatusResource createSupportTicketStatusResource)
        {
            if (ModelState.IsValid)
            {
                if (this.ticketStatusRepository.IsStatusExist(createSupportTicketStatusResource.Name))
                {
                    ModelState.AddModelError("", $"Ticket Status with name ({createSupportTicketStatusResource.Name}) is already exist!");
                    return(new BadRequestObjectResult(new BadRequestResource(ModelState)));
                }

                var supportTicketStatus = this.mapper.Map <CreateSupportTicketStatusResource, SupportTicketStatus>(createSupportTicketStatusResource);

                var loggedInUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);

                this.ticketStatusRepository.CreateTicketStatus(supportTicketStatus);

                await this.unitOfWork.CompleteAsync();

                return(new OkObjectResult(new { message = $"New ticket status has created with name ({supportTicketStatus.Name})" }));
            }

            return(new BadRequestObjectResult(new BadRequestResource(ModelState)));
        }
        public async Task <IActionResult> UpdateTicketStatus([FromRoute] int ticketStatusId, [FromBody] CreateSupportTicketStatusResource createSupportTicketStatusResource)
        {
            if (ModelState.IsValid)
            {
                var ticketStatus = await this.ticketStatusRepository.FindTicketStatusByIdAsync(ticketStatusId);

                if (ticketStatus == null)
                {
                    ModelState.AddModelError("", "Ticket status not found");
                    return(new NotFoundObjectResult(new NotFoundResource(ModelState)));
                }

                if (this.ticketStatusRepository.IsStatusUpdatedNameExist(
                        createSupportTicketStatusResource.Name,
                        ticketStatusId))
                {
                    ModelState.AddModelError("", $"Ticket status with name ({createSupportTicketStatusResource.Name}) is already exist!");
                    return(new BadRequestObjectResult(new BadRequestResource(ModelState)));
                }

                this.mapper.Map <CreateSupportTicketStatusResource, SupportTicketStatus>(createSupportTicketStatusResource, ticketStatus);

                var loggedInUserId = User.FindFirstValue(ClaimTypes.NameIdentifier);

                this.ticketStatusRepository.UpdateTicketStatus(ticketStatus);

                await this.unitOfWork.CompleteAsync();

                return(new OkObjectResult(new { message = "Ticket Status has updated" }));
            }

            return(new BadRequestObjectResult(new BadRequestResource(ModelState)));
        }