コード例 #1
0
        public async Task <IActionResult> SaveOtzActivityForm([FromBody] OtzActivityFormCommand otzActivityFormCommand)
        {
            var response = await _mediator.Send(otzActivityFormCommand, Request.HttpContext.RequestAborted);

            if (response.IsValid)
            {
                return(Ok(response.Value));
            }
            return(BadRequest(response));
        }
コード例 #2
0
        public async Task <Result <OtzActivityFormResponse> > Handle(OtzActivityFormCommand request, CancellationToken cancellationToken)
        {
            using (_unitOfWork)
            {
                try
                {
                    int patientMasterVisitId = 0;
                    var visit = await _unitOfWork.Repository <Core.Models.PatientMasterVisit>().Get(x => x.VisitDate == request.VisitDate).ToListAsync();

                    if (visit.Count == 0)
                    {
                        var patientMasterVisit = new Core.Models.PatientMasterVisit()
                        {
                            PatientId      = request.PatientId,
                            ServiceId      = request.ServiceId,
                            Start          = request.VisitDate,
                            DeleteFlag     = false,
                            CreatedBy      = request.UserId,
                            CreateDate     = DateTime.Now,
                            Active         = true,
                            End            = request.VisitDate,
                            Status         = null,
                            VisitBy        = null,
                            VisitDate      = request.VisitDate,
                            VisitScheduled = null,
                            VisitType      = null
                        };
                        await _unitOfWork.Repository <Core.Models.PatientMasterVisit>().AddAsync(patientMasterVisit);

                        await _unitOfWork.SaveAsync();

                        patientMasterVisitId = patientMasterVisit.Id;
                    }
                    else
                    {
                        patientMasterVisitId = visit[0].Id;
                    }

                    var activityFormId = 0;
                    var otzActivities  = await _unitOfWork.Repository <OtzActivityForm>().Get(x => x.PatientMasterVisitId == patientMasterVisitId).ToListAsync();

                    if (otzActivities.Count == 0)
                    {
                        var otzActivityForm = new OtzActivityForm()
                        {
                            AttendedSupportGroup = request.AttendedSupportGroup,
                            DeleteFlag           = false,
                            PatientMasterVisitId = patientMasterVisitId,
                            Remarks = request.Remarks,
                            UserId  = request.UserId
                        };

                        await _unitOfWork.Repository <OtzActivityForm>().AddAsync(otzActivityForm);

                        await _unitOfWork.SaveAsync();

                        activityFormId = otzActivityForm.Id;
                    }
                    else
                    {
                        otzActivities[0].AttendedSupportGroup = request.AttendedSupportGroup;
                        otzActivities[0].Remarks = request.Remarks;
                        otzActivities[0].UserId  = request.UserId;

                        _unitOfWork.Repository <OtzActivityForm>().Update(otzActivities[0]);
                        await _unitOfWork.SaveAsync();

                        activityFormId = otzActivities[0].Id;
                    }

                    if (request.OtzActivity.Any())
                    {
                        List <OtzActivityTopics> otzActivityTopics = new List <OtzActivityTopics>();
                        request.OtzActivity.ForEach(x => otzActivityTopics.Add(new OtzActivityTopics
                        {
                            ActivityFormId = activityFormId,
                            DateCompleted  = x.DateCompleted,
                            TopicId        = x.TopicId
                        }));

                        await _unitOfWork.Repository <OtzActivityTopics>().AddRangeAsync(otzActivityTopics);

                        await _unitOfWork.SaveAsync();
                    }

                    return(Result <OtzActivityFormResponse> .Valid(new OtzActivityFormResponse()
                    {
                        Message = $"Successfully added new otz activity forms"
                    }));
                }
                catch (Exception ex)
                {
                    Log.Error(ex, "An error occured while trying to add new otz activity form");
                    return(Result <OtzActivityFormResponse> .Invalid(ex.Message));
                }
            }
        }