public async Task <CheckSheetEntry> AddInitialReCheck(ReCheck data)
        {
            var hasInitial = await _reCheckService.HasInitialReCheck(data.CheckSheetEntryId);

            if (hasInitial)
            {
                return(null);
            }
            await _reCheckService.Update(data);

            return(await GetById(data.CheckSheetEntryId));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Post(ReCheck data)
        {
            if (data == null)
            {
                return(BadRequest());
            }

            try
            {
                ReCheck         latestRecheck;
                CheckSheetEntry checkSheetEntry;
                int             controlId;

                switch (data.Value)
                {
                case null when data.ValueBool == null && data.ReCheckId == 0:

                    return(Ok(
                               new CheckSheetResultDto
                    {
                        Status = 0,
                        StatusText = "Null entry",
                        Result = null
                    }
                               ));

                case null when data.ValueBool == null && data.ReCheckId > 0:

                    //get the recheck object as readonly
                    var reCheck = await _service.GetByIdNoTracking(data.ReCheckId);

                    //delete object
                    await _service.Delete(data.ReCheckId);

                    //get the latest rechecks after delete, if null get the initial recheck object
                    latestRecheck =
                        await _service.GetLatestRecheck(reCheck.CheckSheetEntryId) ?? reCheck;

                    //get the control id
                    controlId       = reCheck.CheckSheetEntry.CheckSheet.ControlMethodId;
                    checkSheetEntry = await GetCheckSheetEntry(controlId, latestRecheck);

                    return(Ok(
                               new CheckSheetResultDto
                    {
                        Status = 1,
                        StatusText = "Delete",
                        Result = new { reCheck = data, checkSheetEntry }
                    }
                               ));

                default:

                    await _service.Update(data);

                    latestRecheck = await _service.GetLatestRecheck(data.CheckSheetEntryId);

                    controlId       = latestRecheck.CheckSheetEntry.CheckSheet.ControlMethodId;
                    checkSheetEntry = await GetCheckSheetEntry(controlId, latestRecheck);

                    return(Ok(
                               new CheckSheetResultDto
                    {
                        Status = 2,
                        StatusText = "Add/Update",
                        Result = new { reCheck = data, checkSheetEntry }
                    }
                               ));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }