public void UpdateToDo_Test() { ToDoData data = new ToDoData { Id = "5400b215d433231f60c94119", AssignedToId = "5325c821072ef705080d3488", //CategoryId = "53f51b0ed4332316fcdbeba4", //Description = "updated desc", //DueDate = System.DateTime.UtcNow, //StartTime = DateTime.UtcNow, //Duration = 20, Title = "this is my updated title", // PatientId = "5325d9efd6a4850adcbba4c2", // PriorityId = 3, StatusId = 1, //ProgramIds = new System.Collections.Generic.List<string> { "532caae9a38116ac18000846" }, DeleteFlag = true }; PutUpdateToDoDataRequest request = new PutUpdateToDoDataRequest { Context = context, ContractNumber = contractNumber, ToDoData = data, UserId = userId, Version = version }; ISchedulingDataManager cm = new SchedulingDataManager { Factory = new SchedulingRepositoryFactory() }; PutUpdateToDoDataResponse response = cm.UpdateToDo(request); Assert.IsNotNull(response); }
public void UpdateToDo_Test() { ToDoData data = new ToDoData { Id = "5400b215d433231f60c94119", StatusId = (int)Status.Met, Description = "updated desc", Title = "updated title", DueDate = DateTime.UtcNow, StartTime = System.DateTime.UtcNow, Duration = 20, ClosedDate = DateTime.UtcNow }; PutUpdateToDoDataRequest request = new PutUpdateToDoDataRequest { Context = context, ContractNumber = contractNumber, ToDoData = data, UserId = userId, Version = version }; ISchedulingDataManager cm = new StubToDoDataManager { Factory = new StubSchedulingRepositoryFactory() }; PutUpdateToDoDataResponse response = cm.UpdateToDo(request); Assert.IsNotNull(response); }
public object Update(object entity) { PutUpdateToDoDataRequest request = (PutUpdateToDoDataRequest)entity; ToDoData todoData = request.ToDoData; bool result = false; if (todoData != null) { METoDo meToDo = new METoDo(this.UserId, todoData.CreatedOn) { Status = (Status)todoData.StatusId, Priority = (Priority)todoData.PriorityId, Description = todoData.Description, Title = todoData.Title, LoweredTitle = todoData.Title != null?todoData.Title.ToLower() : null, DueDate = todoData.DueDate, StartTime = todoData.StartTime, Duration = todoData.Duration, ClosedDate = todoData.ClosedDate }; } result = true; return(result); }
public PutUpdateToDoDataResponse UpdateToDo(PutUpdateToDoDataRequest request) { PutUpdateToDoDataResponse response = new PutUpdateToDoDataResponse(); try { ISchedulingRepository repo = Factory.GetRepository(request, RepositoryType.ToDo); bool success = (bool)repo.Update(request); if (success) { ToDoData data = (ToDoData)repo.FindByID(request.ToDoData.Id, true); response.ToDoData = data; } } catch (Exception ex) { throw ex; } return(response);; }
public PutUpdateToDoDataResponse Put(PutUpdateToDoDataRequest request) { PutUpdateToDoDataResponse response = new PutUpdateToDoDataResponse(); try { if (string.IsNullOrEmpty(request.UserId)) { throw new UnauthorizedAccessException("SchedulingDD:Put()::Unauthorized Access"); } response = Manager.UpdateToDo(request); response.Version = request.Version; } catch (Exception ex) { CommonFormatter.FormatExceptionResponse(response, base.Response, ex); string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0"; Common.Helper.LogException(int.Parse(aseProcessID), ex); } return(response); }
public object Update(object entity) { PutUpdateToDoDataRequest request = (PutUpdateToDoDataRequest)entity; ToDoData todoData = request.ToDoData; bool result = false; try { if (todoData != null) { using (SchedulingMongoContext ctx = new SchedulingMongoContext(_dbName)) { var q = MB.Query <METoDo> .EQ(b => b.Id, ObjectId.Parse(todoData.Id)); // Set the ClosedDate if the status is changed. METoDo existingToDo = ctx.ToDos.Collection.Find(q).SetFields(METoDo.StatusProperty).FirstOrDefault(); if (existingToDo != null) { if ((todoData.StatusId == (int)Status.Met || todoData.StatusId == (int)Status.Abandoned)) { if (existingToDo.Status != (Status)todoData.StatusId) { todoData.ClosedDate = DateTime.UtcNow; } } else { todoData.ClosedDate = null; } } var uv = new List <MB.UpdateBuilder>(); uv.Add(MB.Update.Set(METoDo.UpdatedByProperty, ObjectId.Parse(this.UserId))); uv.Add(MB.Update.Set(METoDo.VersionProperty, request.Version)); uv.Add(MB.Update.Set(METoDo.LastUpdatedOnProperty, System.DateTime.UtcNow)); uv.Add(MB.Update.Set(METoDo.TitleProperty, todoData.Title)); if (!string.IsNullOrEmpty(todoData.Title)) { uv.Add(MB.Update.Set(METoDo.LoweredTitleProperty, todoData.Title.ToLower())); } uv.Add(MB.Update.Set(METoDo.StatusProperty, (Status)todoData.StatusId)); uv.Add(MB.Update.Set(METoDo.PriorityProperty, (Priority)todoData.PriorityId)); if (!string.IsNullOrEmpty(todoData.Description)) { uv.Add(MB.Update.Set(METoDo.DescriptionProperty, todoData.Description)); } else { uv.Add(MB.Update.Set(METoDo.DescriptionProperty, BsonNull.Value)); } if (todoData.DueDate != null) { uv.Add(MB.Update.Set(METoDo.DueDateProperty, todoData.DueDate)); } else { uv.Add(MB.Update.Set(METoDo.DueDateProperty, BsonNull.Value)); } if (todoData.StartTime != null) { uv.Add(MB.Update.Set(METoDo.StartTimeProperty, todoData.StartTime)); } else { uv.Add(MB.Update.Set(METoDo.StartTimeProperty, BsonNull.Value)); } if (todoData.Duration != null) { uv.Add(MB.Update.Set(METoDo.DurationProperty, todoData.Duration)); } else { uv.Add(MB.Update.Set(METoDo.DurationProperty, BsonNull.Value)); } if (todoData.ClosedDate != null) { uv.Add(MB.Update.Set(METoDo.ClosedDateProperty, todoData.ClosedDate)); } else { uv.Add(MB.Update.Set(METoDo.ClosedDateProperty, BsonNull.Value)); } if (todoData.ProgramIds != null) { uv.Add(MB.Update.SetWrapped(METoDo.ProgramProperty, Helper.ConvertToObjectIdList(todoData.ProgramIds))); } else { uv.Add(MB.Update.Set(METoDo.ProgramProperty, BsonNull.Value)); } if (!string.IsNullOrEmpty(todoData.PatientId)) { uv.Add(MB.Update.Set(METoDo.PatientIdProperty, ObjectId.Parse(todoData.PatientId))); } else { uv.Add(MB.Update.Set(METoDo.PatientIdProperty, BsonNull.Value)); } if (!string.IsNullOrEmpty(todoData.CategoryId)) { uv.Add(MB.Update.Set(METoDo.CatgegoryProperty, ObjectId.Parse(todoData.CategoryId))); } else { uv.Add(MB.Update.Set(METoDo.CatgegoryProperty, BsonNull.Value)); } if (!string.IsNullOrEmpty(todoData.AssignedToId)) { uv.Add(MB.Update.Set(METoDo.AssignedToProperty, ObjectId.Parse(todoData.AssignedToId))); } else { uv.Add(MB.Update.Set(METoDo.AssignedToProperty, BsonNull.Value)); } uv.Add(MB.Update.Set(METoDo.DeleteFlagProperty, todoData.DeleteFlag)); DataAuditType type; if (todoData.DeleteFlag) { uv.Add(MB.Update.Set(METoDo.TTLDateProperty, System.DateTime.UtcNow.AddDays(_expireDays))); type = Common.DataAuditType.Delete; } else { uv.Add(MB.Update.Set(METoDo.TTLDateProperty, BsonNull.Value)); type = Common.DataAuditType.Update; } IMongoUpdate update = MB.Update.Combine(uv); WriteConcernResult res = ctx.ToDos.Collection.Update(q, update); if (res.Ok == false) { throw new Exception("Failed to update a ToDo: " + res.ErrorMessage); } else { AuditHelper.LogDataAudit(this.UserId, MongoCollectionName.ToDo.ToString(), todoData.Id, type, request.ContractNumber); } result = true; } } return(result); } catch (Exception) { throw; } }