Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);;
        }
Пример #5
0
        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);
        }
Пример #6
0
        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; }
        }