public object Initialize(object newEntity) { PutInitializeBarrierDataRequest request = (PutInitializeBarrierDataRequest)newEntity; MEPatientBarrier mePb = null; try { mePb = new MEPatientBarrier(this.UserId) { Id = ObjectId.GenerateNewId(), PatientGoalId = ObjectId.Parse(request.PatientGoalId), TTLDate = System.DateTime.UtcNow.AddDays(_initializeDays), StatusDate = DateTime.UtcNow, DeleteFlag = false //, //LastUpdatedOn = DateTime.UtcNow, //UpdatedBy = ObjectId.Parse(this.UserId), //Version = request.Version }; using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName)) { ctx.PatientBarriers.Collection.Insert(mePb); AuditHelper.LogDataAudit(this.UserId, MongoCollectionName.PatientBarrier.ToString(), mePb.Id.ToString(), Common.DataAuditType.Insert, request.ContractNumber); } return(mePb.Id.ToString()); } catch (Exception) { throw; } }
public object FindByID(string entityID) { try { PatientBarrierData barrierData = null; List <IMongoQuery> queries = new List <IMongoQuery>(); queries.Add(Query.EQ(MEPatientBarrier.IdProperty, ObjectId.Parse(entityID))); queries.Add(Query.EQ(MEPatientBarrier.DeleteFlagProperty, false)); queries.Add(Query.EQ(MEPatientBarrier.TTLDateProperty, BsonNull.Value)); IMongoQuery mQuery = Query.And(queries); using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName)) { MEPatientBarrier b = ctx.PatientBarriers.Collection.Find(mQuery).FirstOrDefault(); if (b != null) { barrierData = new PatientBarrierData { Id = b.Id.ToString(), Name = b.Name, PatientGoalId = b.PatientGoalId.ToString(), CategoryId = b.CategoryId == null ? null : b.CategoryId.ToString(), StatusId = ((int)b.Status), StatusDate = b.StatusDate, DeleteFlag = b.DeleteFlag, Details = b.Details }; } } return(barrierData); } catch (Exception) { throw; } }
public object Update(object entity) { bool result = false; PutUpdateBarrierRequest pbr = (PutUpdateBarrierRequest)entity; PatientBarrierData pb = pbr.Barrier; try { using (PatientGoalMongoContext ctx = new PatientGoalMongoContext(_dbName)) { var q = MB.Query <MEPatientBarrier> .EQ(b => b.Id, ObjectId.Parse(pb.Id)); // Set the StatusDate to Now if the status is changed. MEPatientBarrier existingPB = ctx.PatientBarriers.Collection.Find(q).SetFields(MEPatientBarrier.StatusProperty).FirstOrDefault(); if (existingPB != null) { if ((int)existingPB.Status != pb.StatusId) { pb.StatusDate = DateTime.UtcNow; } } var uv = new List <MB.UpdateBuilder>(); uv.Add(MB.Update.Set(MEPatientBarrier.UpdatedByProperty, ObjectId.Parse(this.UserId))); uv.Add(MB.Update.Set(MEPatientBarrier.VersionProperty, pbr.Version)); uv.Add(MB.Update.Set(MEPatientBarrier.LastUpdatedOnProperty, System.DateTime.UtcNow)); if (pb.Name != null) { uv.Add(MB.Update.Set(MEPatientBarrier.NameProperty, pb.Name)); } if (pb.Details != null) { uv.Add(MB.Update.Set(MEPatientBarrier.DetailProperty, pb.Details)); } if (pb.PatientGoalId != null) { uv.Add(MB.Update.Set(MEPatientBarrier.PatientGoalIdProperty, ObjectId.Parse(pb.PatientGoalId))); } if (pb.StatusId != 0) { uv.Add(MB.Update.Set(MEPatientBarrier.StatusProperty, pb.StatusId)); } if (pb.StatusDate != null) { uv.Add(MB.Update.Set(MEPatientBarrier.StatusDateProperty, pb.StatusDate)); } if (pb.CategoryId != null) { uv.Add(MB.Update.Set(MEPatientBarrier.CategoryProperty, ObjectId.Parse(pb.CategoryId))); } uv.Add(MB.Update.Set(MEPatientBarrier.DeleteFlagProperty, pb.DeleteFlag)); DataAuditType type; if (pb.DeleteFlag) { uv.Add(MB.Update.Set(MEPatientBarrier.TTLDateProperty, System.DateTime.UtcNow.AddDays(_expireDays))); type = Common.DataAuditType.Delete; } else { uv.Add(MB.Update.Set(MEPatientBarrier.TTLDateProperty, BsonNull.Value)); type = Common.DataAuditType.Update; } IMongoUpdate update = MB.Update.Combine(uv); ctx.PatientBarriers.Collection.Update(q, update); AuditHelper.LogDataAudit(pbr.UserId, MongoCollectionName.PatientBarrier.ToString(), pb.Id.ToString(), type, pbr.ContractNumber); result = true; } return(result as object); } catch (Exception ex) { throw new Exception("PatientGoalDD:MongoPatientBarrierRepository:Update()" + ex.Message, ex.InnerException); } }