Esempio n. 1
0
        public async Task <IActionResult> PutForApproval([FromRoute] int id, [FromBody] ForApproval forApproval)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != forApproval.ID)
            {
                return(BadRequest());
            }

            var forApprovals = _context.ForApproval.Where(indicator => indicator.ID == id);

            foreach (var forApp in forApprovals)
            {
                forApp.UserID      = forApproval.UserID;
                forApp.isApproved  = forApproval.isApproved;
                forApp.Comment     = forApproval.Comment;
                forApp.DateCreated = DateTime.Now;

                _context.Entry(forApp).State = EntityState.Modified;
            }

            if (forApproval.isApproved == ApprovalStatus.Approved)
            {
                if (forApproval.CannedIndicatorID != null)
                {
                    UpdateIndicators((int)forApproval.CannedIndicatorID);
                }
                else if (forApproval.IndicatorID != null)
                {
                    var indicator = _context.Indicators.Find(forApproval.IndicatorID);
                    indicator.IsApproved = forApproval.isApproved == ApprovalStatus.Approved;

                    _context.Entry(indicator).State = EntityState.Modified;
                }
            }

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ForApprovalExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            var updateApproval = _context.ForApproval.Include(app => app.User).Include(app => app.CannedIndicator).ToList();

            return(Ok(updateApproval));
        }
Esempio n. 2
0
        public async Task <IActionResult> PostForApproval([FromBody] ForApproval forApproval)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //forApproval.UserID = Int32.Parse(HttpContext.User.Claims.FirstOrDefault(c => c.Type == "id").Value);

            if (forApproval.CannedIndicatorID > 0)
            {
                int indicatorID = (int)forApproval.CannedIndicatorID;

                var CannedIndicator = new CannedIndicator()
                {
                    ID     = indicatorID,
                    Status = false
                };

                _context.Entry(CannedIndicator).Property(status => status.Status).IsModified = true;
            }
            else if (forApproval.IndicatorID != null)
            {
                forApproval.CannedIndicatorID = null;

                var indicator = _context.Indicators.Find(forApproval.IndicatorID);
                indicator.IsApproved = false;

                _context.Entry(indicator).State = EntityState.Modified;
            }

            _context.ForApproval.Add(forApproval);

            try
            {
                await _context.SaveChangesAsync();
            } catch (Exception e)
            {
            }

            return(CreatedAtAction("GetForApproval", new { id = forApproval.ID }, forApproval));
        }