Ejemplo n.º 1
0
        public async Task <IActionResult> Suspend(PostSuspendModel model)
        {
            var user = await userManager.GetUserAsync(User);

            if (user == null ||
                !(await userManager.IsInRoleAsync(user, UserHelpers.UserRoles.Staff.ToString())))
            {
                return(Utilities.ErrorJson("Not authorized."));
            }

            List <String> missingParameters = new List <String>();

            if (model.Id == 0)
            {
                missingParameters.Add("child id");
            }

            if (model.Start == DateTime.MinValue)
            {
                missingParameters.Add("start time");
            }

            if (model.End == DateTime.MinValue)
            {
                missingParameters.Add("end time");
            }

            if (missingParameters.Count != 0)
            {
                return(Utilities.GenerateMissingInputMessage(missingParameters));
            }

            String timeframeMsg = Utilities.ValidateTimeframe(model.Start, model.End);

            if (!timeframeMsg.Equals(""))
            {
                return(Utilities.ErrorJson(timeframeMsg));
            }

            try
            {
                ChildRepository repo = new ChildRepository(configModel.ConnectionString);


                return(new JsonResult(new
                {
                    Message = repo.Suspend(model.Id, model.Start, model.End)
                }));
            }
            catch (Exception exc)
            {
                return(new JsonResult(new
                {
                    Error = exc.Message,
                }));
            }
        }