public async Task <IActionResult> Post([FromBody] PersonRegistrationCommand registerPersonCommand)
        {
            var response = await _mediator.Send(registerPersonCommand, Request.HttpContext.RequestAborted);

            if (response.IsValid)
            {
                return(Ok(response.Value));
            }
            return(BadRequest(response));
        }
        public async Task <Result <PersonRegistrationResponse> > Handle(PersonRegistrationCommand request, CancellationToken cancellationToken)
        {
            try
            {
                using (_unitOfWork)
                {
                    Person person = new Person();
                    RegisterPersonService registerPersonService = new RegisterPersonService(_unitOfWork);
                    Facility clientFacility = await _unitOfWork.Repository <Facility>().Get(x => x.PosID == request.Person.PosId.ToString()).FirstOrDefaultAsync();

                    if (clientFacility == null)
                    {
                        clientFacility = await _unitOfWork.Repository <Facility>().Get(x => x.DeleteFlag == 0).FirstOrDefaultAsync();
                    }

                    if (!request.Person.Id.HasValue)
                    {
                        person = await registerPersonService.RegisterPerson(request.Person.FirstName, request.Person.MiddleName,
                                                                            request.Person.LastName, request.Person.Sex, request.Person.CreatedBy, clientFacility.FacilityID, request.Person.DateOfBirth,
                                                                            request.Person.RegistrationDate, request.Person.NickName, request.Person.DobPrecision);
                    }
                    else
                    {
                        person = await registerPersonService.UpdatePerson(request.Person.Id.Value,
                                                                          request.Person.FirstName, request.Person.MiddleName, request.Person.LastName,
                                                                          request.Person.Sex, request.Person.DateOfBirth, clientFacility.FacilityID, request.Person.RegistrationDate, request.Person.DobPrecision, request.Person.NickName);
                    }

                    _unitOfWork.Dispose();
                    return(Result <PersonRegistrationResponse> .Valid(new PersonRegistrationResponse { PersonId = person.Id, Message = "Success" }));
                }
            }
            catch (Exception e)
            {
                Log.Error(e.Message + " " + e.InnerException);
                return(Result <PersonRegistrationResponse> .Invalid(e.Message + " " + e.InnerException));
            }
        }
Example #3
0
        public async Task <Result <PersonRegistrationResponse> > Handle(PersonRegistrationCommand request, CancellationToken cancellationToken)
        {
            try
            {
                Client c = new Client();
                c.FirstName     = request.Person.FirstName;
                c.LastName      = request.Person.LastName;
                c.MiddleName    = request.Person.MiddleName;
                c.LastName      = request.Person.LastName;
                c.MaritalStatus = request.Person.MaritalStatus;
                c.Sex           = request.Person.Sex;
                c.PersonId      = request.Person.PersonId;
                c.CreatedBy     = request.Person.CreatedBy;
                c.DateOfBirth   = request.Person.DateOfBirth;
                c.DobPrecision  = request.Person.DobPrecision;
                RegisterPersonService rs = new RegisterPersonService(_unitOfWork);
                int PerId;


                if (!String.IsNullOrEmpty(c.PersonId.ToString()))
                {
                    PerId = Convert.ToInt32(c.PersonId.ToString());

                    if (PerId > 0)
                    {
                        var result = await Task.Run(() => rs.UpdatePerson(PerId, c.FirstName, c.MiddleName, c.LastName, c.Sex, c.CreatedBy, c.DateOfBirth, c.DobPrecision));

                        PId = result.Id;
                        msg = String.Format("Person with the PersonId: {0} updated successfully", PId);
                        var _marStatus = await Task.Run(() => rs.GetFirstPatientMaritalStatus(PerId));

                        if (_marStatus != null && c.MaritalStatus > 0)
                        {
                            //_marStatus.DeleteFlag = true;
                            var maritalStatus = await Task.Run(() => rs.UpdateMaritalStatus(_marStatus));

                            // var finalupdatestatus = await Task.Run(() => rs.AddMaritalStatus(PerId, c.MaritalStatus, c.CreatedBy));
                            if (maritalStatus != null)
                            {
                                msg += "PersonMaritalStatus Updated Successfully";
                            }
                        }
                        else if (_marStatus != null && c.MaritalStatus == 0)
                        {
                            _marStatus.DeleteFlag = true;
                            var maritalStatus = await Task.Run(() => rs.UpdateMaritalStatus(_marStatus));

                            if (maritalStatus.DeleteFlag == true)
                            {
                                msg += "Person MaritalStatus Updated Successfully";
                            }
                        }
                        else
                        {
                            if (c.MaritalStatus > 0)
                            {
                                var finalupdatestatus = await Task.Run(() => rs.AddMaritalStatus(PerId, c.MaritalStatus, c.CreatedBy));

                                if (finalupdatestatus != null)
                                {
                                    msg += "PersonMaritalStatus Added Successfully!";
                                }
                            }
                        }
                    }
                }
                else
                {
                    var reg = rs.RegisterPerson(c.FirstName, c.MiddleName, c.LastName, c.Sex, c.DateOfBirth, c.CreatedBy, c.DobPrecision);
                    if (reg != null && reg.Id > 0)
                    {
                        int perId = reg.Id;
                        PId  = reg.Id;
                        msg += String.Format("New Person Added Successsfully:PersonId=>,{0}", reg.Id);
                        if (c.MaritalStatus > 0)
                        {
                            var mar = rs.AddMaritalStatus(perId, c.MaritalStatus, c.CreatedBy);
                            if (mar != null)
                            {
                                msg += "Person Marital Status added successfully";
                            }
                        }
                    }
                }



                _unitOfWork.Dispose();

                return(Result <PersonRegistrationResponse> .Valid(new PersonRegistrationResponse { PersonId = PId, Message = msg }));
            }
            catch (Exception e)
            {
                // msg = e.Message;
                return(Result <PersonRegistrationResponse> .Invalid(e.Message));
            }
        }
        public async Task <Result <PersonRegistrationResponse> > Handle(PersonRegistrationCommand request, CancellationToken cancellationToken)
        {
            try

            {
                Client c = new Client();
                c.FirstName     = request.Person.FirstName;
                c.LastName      = request.Person.LastName;
                c.MiddleName    = request.Person.MiddleName;
                c.LastName      = request.Person.LastName;
                c.MaritalStatus = request.Person.MaritalStatus;
                c.Sex           = request.Person.Sex;
                c.PersonId      = request.Person.PersonId;
                c.CreatedBy     = request.Person.CreatedBy;
                c.DateOfBirth   = request.Person.DateOfBirth;
                c.DobPrecision  = request.Person.DobPrecision;

                int PerId;

                if (!String.IsNullOrEmpty(c.PersonId.ToString()))
                {
                    PerId = Convert.ToInt32(c.PersonId.ToString());
                    if (PerId > 0)
                    {
                        var personManager = new PersonManager();
                        //UpdatePerson(string firstname, string middlename, string lastname, int gender, int userId, int id, DateTime dateOfBirth, bool dobPrecision)
                        await Task.Run(() => personManager.UpdatePerson(c.FirstName, c.MiddleName, c.LastName, c.Sex, c.CreatedBy, Convert.ToInt32(c.PersonId.ToString()), c.DateOfBirth, c.DobPrecision));

                        PId = Convert.ToInt32(c.PersonId.ToString());
                        msg = string.Format("Person with the PersonId: {0} updated successfully", PId);
                    }

                    var maritalstatus = new PersonMaritalStatusManager();
                    var _marStatus    = maritalstatus.GetInitialPatientMaritalStatus(PerId);
                    if (_marStatus != null && c.MaritalStatus > 0)
                    {
                        _marStatus.MaritalStatusId = c.MaritalStatus;
                        _marStatus.CreatedBy       = c.CreatedBy;
                        res = await Task.Run(() => maritalstatus.UpdatePatientMaritalStatus(_marStatus));

                        if (res > 0)
                        {
                            msg += "<p>Person Marital Status Updated Successfully!</p>";
                        }
                    }
                    else if (_marStatus != null && c.MaritalStatus == 0)
                    {
                        _marStatus.DeleteFlag = true;

                        res = await Task.Run(() => maritalstatus.UpdatePatientMaritalStatus(_marStatus));

                        if (res > 0)
                        {
                            msg += "<p>Person Marital Status Updated Successfully!</p>";
                        }
                    }
                    else
                    {
                        if (c.MaritalStatus > 0)
                        {
                            res = await Task.Run(() => maritalstatus.AddPatientMaritalStatus(Convert.ToInt32(c.PersonId.ToString()), c.MaritalStatus, c.CreatedBy));

                            {
                                if (res > 0)
                                {
                                    msg += "PersonMarital Status Added Successfully!";
                                }
                            }
                        }
                    }
                }
                else
                {
                    var personLogic = new PersonManager();
                    PId = personLogic.AddPersonUiLogic(c.FirstName, c.MiddleName, c.LastName, c.Sex, Convert.ToInt32(c.CreatedBy), c.DateOfBirth, Convert.ToBoolean(c.DobPrecision));
                    if (PId > 0)
                    {
                        msg = "New Person Added successfully:PersonId=>" + PId + "</p>";
                        var MaritalStatus = new PersonMaritalStatusManager();
                        if (c.MaritalStatus > 0)
                        {
                            res = MaritalStatus.AddPatientMaritalStatus(PId, c.MaritalStatus, c.CreatedBy);
                            if (res > 0)
                            {
                                msg += "Person Marital Status Added Successfully!";
                            }
                        }
                        else
                        {
                        }
                    }
                }
            }
            catch (Exception e)
            {
                msg = e.Message;
            }

            return(Result <PersonRegistrationResponse> .Valid(new PersonRegistrationResponse()
            {
                PersonId = PId,
                Message = msg
            }));
        }