public void UpdateNotFoundHelpdesk()
        {
            var facade        = new HelpdeskFacade();
            var updateRequest = new UpdateHelpdeskRequest()
            {
                HasCheckIn = true,
                HasQueue   = true,
                Name       = AlphaNumericStringGenerator.GetString(10)
            };

            var updateResponse = facade.UpdateHelpdesk(-1, updateRequest);

            Assert.AreEqual(HttpStatusCode.NotFound, updateResponse.Status);
        }
        public void UpdateHelpdesk()
        {
            var request = new AddHelpdeskRequest()
            {
                HasCheckIn = false,
                HasQueue   = true,
                Name       = AlphaNumericStringGenerator.GetString(10)
            };

            var facade   = new HelpdeskFacade();
            var response = facade.AddHelpdesk(request);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);
            Assert.IsTrue(response.HelpdeskID > 0);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                var helpdesk = context.Helpdesksettings.FirstOrDefault(p => p.HelpdeskId == response.HelpdeskID);

                Assert.IsNotNull(helpdesk);
            }

            var updateRequest = new UpdateHelpdeskRequest()
            {
                HasCheckIn = true,
                HasQueue   = true,
                Name       = AlphaNumericStringGenerator.GetString(10)
            };

            var updateResponse = facade.UpdateHelpdesk(response.HelpdeskID, updateRequest);

            Assert.AreEqual(HttpStatusCode.OK, response.Status);

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                var helpdesk = context.Helpdesksettings.FirstOrDefault(p => p.HelpdeskId == response.HelpdeskID);

                Assert.IsNotNull(helpdesk);
                Assert.AreEqual(updateRequest.HasCheckIn, helpdesk.HasCheckIn);
                Assert.AreEqual(updateRequest.HasQueue, helpdesk.HasQueue);
                Assert.AreEqual(updateRequest.Name, helpdesk.Name);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// This method is to handle updating helpdesk business logic
        /// </summary>
        /// <param name="id">The id of the helpdesk to be updated</param>
        /// <param name="request">This is the request with the info to update the helpdesk</param>
        /// <returns>Returns a response which indicate the result</returns>
        public UpdateHelpdeskResponse UpdateHelpdesk(int id, UpdateHelpdeskRequest request)
        {
            var response = new UpdateHelpdeskResponse();

            try
            {
                response = (UpdateHelpdeskResponse)request.CheckValidation(response);

                if (response.Status == HttpStatusCode.BadRequest)
                {
                    return(response);
                }

                var  dataLayer = new HelpdeskDataLayer();
                bool result    = dataLayer.UpdateHelpdesk(id, request);

                if (result)
                {
                    response.Status = HttpStatusCode.OK;
                }
                else
                {
                    response.Status = HttpStatusCode.BadRequest;
                    response.StatusMessages.Add(new StatusMessage(HttpStatusCode.BadRequest, "Unable to update helpdesk."));
                }
            }
            catch (NotFoundException ex)
            {
                response.Status = HttpStatusCode.NotFound;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.NotFound, "Unable to update to find helpdesk"));
                s_logger.Error(ex, "Unable to find helpdesk.");
            }
            catch (Exception ex)
            {
                response.Status = HttpStatusCode.InternalServerError;
                response.StatusMessages.Add(new StatusMessage(HttpStatusCode.InternalServerError, "Unable to update helpdesk"));
                s_logger.Error(ex, "Unable to update helpdesk.");
            }

            return(response);
        }
        public IActionResult AddHelpdesk([FromRoute] int id, [FromBody] UpdateHelpdeskRequest request)
        {
            if (!IsAuthorized())
            {
                return(Unauthorized());
            }

            if (request == null)
            {
                return(BadRequest());
            }

            try
            {
                var facade   = new HelpdeskFacade();
                var response = facade.UpdateHelpdesk(id, request);

                switch (response.Status)
                {
                case HttpStatusCode.OK:
                    return(Ok(response));

                case HttpStatusCode.BadRequest:
                    return(BadRequest(BuildBadRequestMessage(response)));

                case HttpStatusCode.InternalServerError:
                    return(StatusCode(StatusCodes.Status500InternalServerError));

                case HttpStatusCode.NotFound:
                    return(NotFound());
                }
                s_logger.Fatal("This code should be unreachable, unknown result has occured.");
            }
            catch (Exception ex)
            {
                s_logger.Error(ex, "Unable to update helpdesk.");
            }
            return(StatusCode(StatusCodes.Status500InternalServerError));
        }
        /// <summary>
        /// This method is used to update the relevent helpdesk
        /// </summary>
        /// <param name="id">The id of the helpdesk to be updated</param>
        /// <param name="request">The information to update the helpdesk</param>
        /// <returns>Result the indicates whether or not the update was successful</returns>
        public bool UpdateHelpdesk(int id, UpdateHelpdeskRequest request)
        {
            bool result = false;

            using (helpdesksystemContext context = new helpdesksystemContext())
            {
                Helpdesksettings helpdesk = context.Helpdesksettings.FirstOrDefault(p => p.HelpdeskId == id);

                if (helpdesk == null)
                {
                    throw new NotFoundException($"Helpdesk with id [{id}] not found.");
                }

                helpdesk.Name       = request.Name;
                helpdesk.HasCheckIn = request.HasCheckIn;
                helpdesk.HasQueue   = request.HasQueue;

                context.SaveChanges();
                result = true;
            }

            return(result);
        }