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; } }
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; } }