示例#1
0
        public void UndoDelete(object entity)
        {
            UndoDeletePatientProgramAttributesDataRequest request = (UndoDeletePatientProgramAttributesDataRequest)entity;

            try
            {
                using (ProgramMongoContext ctx = new ProgramMongoContext(_dbName))
                {
                    var query = MB.Query <MEProgramAttribute> .EQ(b => b.Id, ObjectId.Parse(request.PatientProgramAttributeId));

                    var builder = new List <MB.UpdateBuilder>();
                    builder.Add(MB.Update.Set(MEProgramAttribute.TTLDateProperty, BsonNull.Value));
                    builder.Add(MB.Update.Set(MEProgramAttribute.DeleteFlagProperty, false));
                    builder.Add(MB.Update.Set(MEProgramAttribute.LastUpdatedOnProperty, DateTime.UtcNow));
                    builder.Add(MB.Update.Set(MEProgramAttribute.UpdatedByProperty, ObjectId.Parse(this.UserId)));

                    IMongoUpdate update = MB.Update.Combine(builder);
                    ctx.ProgramAttributes.Collection.Update(query, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientProgramAttribute.ToString(),
                                             request.PatientProgramAttributeId.ToString(),
                                             Common.DataAuditType.UndoDelete,
                                             request.ContractNumber);
                }
            }
            catch (Exception) { throw; }
        }
示例#2
0
        public UndoDeletePatientProgramDataResponse UndoDeletePatientPrograms(UndoDeletePatientProgramDataRequest request)
        {
            UndoDeletePatientProgramDataResponse response = null;

            try
            {
                response = new UndoDeletePatientProgramDataResponse();
                IProgramRepository ppRepo           = Factory.GetRepository(request, RepositoryType.PatientProgram);
                IProgramRepository ppAttributesRepo = Factory.GetRepository(request, RepositoryType.PatientProgramAttribute);
                IProgramRepository ppResponsesRepo  = Factory.GetRepository(request, RepositoryType.PatientProgramResponse);
                if (request.Ids != null && request.Ids.Count > 0)
                {
                    List <DeletedPatientProgram> PatientProgramIds = request.Ids;
                    PatientProgramIds.ForEach(u =>
                    {
                        #region PatientProgram
                        if (u.Id != null)
                        {
                            request.PatientProgramId = u.Id;
                            ppRepo.UndoDelete(request);
                        }
                        #endregion

                        #region PPAttributes
                        if (u.PatientProgramAttributeId != null)
                        {
                            UndoDeletePatientProgramAttributesDataRequest attrRequest = new UndoDeletePatientProgramAttributesDataRequest
                            {
                                Context                   = request.Context,
                                ContractNumber            = request.ContractNumber,
                                PatientProgramAttributeId = u.PatientProgramAttributeId,
                                UserId  = request.UserId,
                                Version = request.Version
                            };
                            ppAttributesRepo.UndoDelete(attrRequest);
                        }
                        #endregion

                        #region PPResponses
                        List <string> responseIds = u.PatientProgramResponsesIds;
                        if (responseIds != null && responseIds.Count > 0)
                        {
                            responseIds.ForEach(r =>
                            {
                                UndoDeletePatientProgramResponsesDataRequest respRequest = new UndoDeletePatientProgramResponsesDataRequest
                                {
                                    Context                  = request.Context,
                                    ContractNumber           = request.ContractNumber,
                                    PatientProgramResponseId = r,
                                    UserId  = request.UserId,
                                    Version = request.Version
                                };
                                ppResponsesRepo.UndoDelete(respRequest);
                            });
                        }
                        #endregion
                    });
                }
                response.Success = true;
                return(response);
            }
            catch (Exception ex) { throw ex; }
        }