public async Task <DistraintEnforceModel> EnforceAsync(DistraintEnforceModel model)
        {
            if (model == null)
            {
                throw new NullReferenceException("DistraintEnforceModel is null");
            }

            var distraint = await _context.Distraint
                            .Where(x => x.Id == model.Id)
                            .FirstOrDefaultAsync();

            if (distraint == null)
            {
                throw new Exception("Distraint to be enforced was not found");
            }

            if (distraint.StatusCode.ToUpper() != Shared.Enums.DistraintStatus.REGISTERED.ToString())
            {
                throw new Exception("Distraint is not in valid status to be enforced");
            }

            model.EnforcedAt = DateTime.SpecifyKind(DateTime.Now.ToUniversalTime(), DateTimeKind.Utc);

            distraint.StatusCode      = Shared.Enums.DistraintStatus.ENFORCED.ToString();
            distraint.EnforcementDate = model.EnforcementDate.HasValue == true?DateTime.SpecifyKind(model.EnforcementDate.Value.ToUniversalTime(), DateTimeKind.Utc) : DateTime.UtcNow;

            distraint.EnforcedAt = model.EnforcedAt;
            distraint.EnforcedBy = model.EnforcedBy;

            _context.Distraint.Update(distraint);
            await _context.SaveChangesAsync();

            return(model);
        }
예제 #2
0
        public async Task <IActionResult> Enforce([FromBody] DistraintEnforceModel model)
        {
            if (!ModelState.IsValid)
            {
                string msg = $"{_localizer.GetString("Invalid DistraintEnforceModel").Value}!<br />{ModelState.GetErrors()}";
                Log.Information($"DistraintController/Enforce/{CurrentUserId}/{CurrentUserUsername} - {msg}");
                return(BadRequest(msg));
            }

            try
            {
                var distraint = await _distraintService.EnforceAsync(model);

                string msg = $"{_localizer.GetString("Distraint enforced successfully").Value}! (Id: {distraint.Id})";
                Log.Information($"DistraintController/Enforce/{CurrentUserId}/{CurrentUserUsername} - {msg}");
                return(Ok(distraint.Id));
            }
            catch (Exception ex)
            {
                Log.Error(ex, $"ERROR enforcing distraint by user {CurrentUserId}/{CurrentUserUsername}");
                return(BadRequest("Error enforcing distraint"));
            }
        }