Example #1
0
        public List <ToDoData> GetPatientToDos(string patientId, string userId, IAppDomainRequest req)
        {
            try
            {
                var request = new GetToDosDataRequest();
                request.PatientId = patientId;
                request.UserId    = userId;
                request.PatientId = patientId;
                IRestClient client = new JsonServiceClient();

                //{Context}/{Version}/{ContractNumber}/Scheduling/ToDos
                var url = Common.Helper.BuildURL(string.Format(@"{0}/{1}/{2}/{3}/Scheduling/ToDos",
                                                               DDSchedulingUrl,
                                                               "NG",
                                                               req.Version,
                                                               req.ContractNumber), userId);

                var response = client.Post <GetToDosDataResponse>(url, request);
                return(response.ToDos);
            }
            catch (Exception ex)
            {
                throw new Exception("AD:PlanElementEndpointUtil:GetPatientToDos()::" + ex.Message, ex.InnerException);
            }
        }
Example #2
0
        public GetToDosDataResponse FindToDos(object request)
        {
            GetToDosDataResponse response    = new GetToDosDataResponse();
            List <ToDoData>      todoList    = null;
            GetToDosDataRequest  dataRequest = (GetToDosDataRequest)request;

            todoList = new List <ToDoData>();
            todoList.Add(new ToDoData
            {
                AssignedToId = "535ad70ad2d8e912e857525c",
                CategoryId   = "532b64b1a381168abe000a7d",
                ClosedDate   = DateTime.UtcNow,
                CreatedById  = "532b678fa381168abe000ce8",
                CreatedOn    = DateTime.UtcNow,
                Description  = "test description",
                DueDate      = DateTime.UtcNow,
                StartTime    = DateTime.UtcNow,
                Duration     = 20,
                Id           = "532b6320a381168abe000877",
                PatientId    = "532b645fa381168abe0009e9",
                PriorityId   = (int)Priority.High,
                StatusId     = (int)Status.Met,
                Title        = "test title",
                UpdatedOn    = DateTime.UtcNow,
                DeleteFlag   = true
            });
            response.ToDos      = todoList;
            response.TotalCount = 1;
            return(response);
        }
Example #3
0
        public GetToDosDataResponse GetToDos(GetToDosDataRequest request)
        {
            try
            {
                var result = new GetToDosDataResponse();

                ISchedulingRepository repo = Factory.GetRepository(request, RepositoryType.ToDo);
                repo.UserId = request.UserId;
                result      = (GetToDosDataResponse)repo.FindToDos(request);
                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #4
0
        public void GetToDos_Test()
        {
            GetToDosDataRequest request = new GetToDosDataRequest
            {
                Context        = context,
                ContractNumber = contractNumber,
                UserId         = userId,
                Version        = version,
                StatusIds      = new List <int> {
                    1, 3
                },
                CreatedById = userId
            };

            ISchedulingDataManager cm = new StubToDoDataManager {
                Factory = new StubSchedulingRepositoryFactory()
            };
            GetToDosDataResponse response = cm.GetToDos(request);

            Assert.IsNotNull(response);
        }
Example #5
0
        public GetToDosDataResponse Post(GetToDosDataRequest request)
        {
            GetToDosDataResponse response = new GetToDosDataResponse();

            try
            {
                if (string.IsNullOrEmpty(request.UserId))
                {
                    throw new UnauthorizedAccessException("SchedulingDD:Post()::Unauthorized Access");
                }

                response         = Manager.GetToDos(request);
                response.Version = request.Version;
            }
            catch (Exception ex)
            {
                FormatUtil.FormatExceptionResponse(response, base.Response, ex);

                string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0";
                Helpers.LogException(int.Parse(aseProcessID), ex);
            }
            return(response);
        }
Example #6
0
        public void GetToDos_Test()
        {
            GetToDosDataRequest request = new GetToDosDataRequest
            {
                Context        = context,
                ContractNumber = contractNumber,
                UserId         = userId,
                Version        = version,
                // AssignedToId = "5325c821072ef705080d348c",
                //PatientId  = "",
                StatusIds = new List <int> {
                    1, 3
                },
                CreatedById = "5325c821072ef705080d3488"
                              //FromDate = DateTime.Parse("9/1/2014 5:36:54 PM")
            };

            ISchedulingDataManager cm = new SchedulingDataManager {
                Factory = new SchedulingRepositoryFactory()
            };
            GetToDosDataResponse response = cm.GetToDos(request);

            Assert.IsNotNull(response);
        }
Example #7
0
        public GetToDosDataResponse FindToDos(object request)
        {
            GetToDosDataResponse response    = new GetToDosDataResponse();
            List <ToDoData>      todoList    = null;
            GetToDosDataRequest  dataRequest = (GetToDosDataRequest)request;

            try
            {
                using (SchedulingMongoContext ctx = new SchedulingMongoContext(_dbName))
                {
                    List <IMongoQuery> queries = new List <IMongoQuery>();
                    queries.Add(Query.EQ(METoDo.DeleteFlagProperty, false));
                    if (!string.IsNullOrEmpty(dataRequest.AssignedToId))
                    {
                        ObjectId ato;
                        if (ObjectId.TryParse(dataRequest.AssignedToId, out ato))
                        {
                            queries.Add(Query.EQ(METoDo.AssignedToProperty, ato));
                        }
                        else
                        {
                            // Fix for bug  - ENG-1068, UI sends AssignedToId = -1 to query on all unassigned ToDos.
                            if (string.Compare(dataRequest.AssignedToId, "-1", true) == 0)
                            {
                                //queries.Add(Query.Or(Query.EQ(METoDo.AssignedToProperty, BsonNull.Value), Query.EQ(METoDo.AssignedToProperty, BsonString.Empty)));
                                queries.Add(Query.In(METoDo.AssignedToProperty, new BsonArray {
                                    BsonNull.Value, BsonString.Empty
                                }));
                            }
                        }
                    }
                    if (!string.IsNullOrEmpty(dataRequest.NotAssignedToId))
                    {
                        ObjectId nto;
                        if (ObjectId.TryParse(dataRequest.NotAssignedToId, out nto))
                        {
                            queries.Add(Query.NotIn(METoDo.AssignedToProperty, new BsonArray {
                                nto, BsonNull.Value, BsonString.Empty
                            }));
                        }
                    }
                    if (!string.IsNullOrEmpty(dataRequest.CreatedById))
                    {
                        queries.Add(Query.EQ(METoDo.RecordCreatedByProperty, ObjectId.Parse(dataRequest.CreatedById)));
                    }
                    if (!string.IsNullOrEmpty(dataRequest.PatientId))
                    {
                        queries.Add(Query.EQ(METoDo.PatientIdProperty, ObjectId.Parse(dataRequest.PatientId)));
                    }
                    if (dataRequest.StatusIds != null && dataRequest.StatusIds.Count > 0)
                    {
                        queries.Add(Query.In(METoDo.StatusProperty, new BsonArray(dataRequest.StatusIds)));
                    }
                    if (dataRequest.PriorityIds != null && dataRequest.PriorityIds.Count > 0)
                    {
                        queries.Add(Query.In(METoDo.PriorityProperty, new BsonArray(dataRequest.PriorityIds))); //integer values (not object ids)
                    }
                    if (dataRequest.CategoryIds != null && dataRequest.CategoryIds.Count > 0)
                    {
                        List <BsonValue> categories = new List <BsonValue>();
                        foreach (string categoryId in dataRequest.CategoryIds)
                        {
                            if (categoryId.Length > 0)
                            {
                                categories.Add(BsonValue.Create(ObjectId.Parse(categoryId)));
                            }
                            else
                            {
                                categories.Add(BsonNull.Value); //empty string => include null categories ( not set )
                            }
                        }
                        queries.Add(Query.In(METoDo.CatgegoryProperty, categories));
                    }
                    if (dataRequest.FromDate != null)
                    {
                        queries.Add(Query.GTE(METoDo.ClosedDateProperty, dataRequest.FromDate));
                    }

                    IMongoQuery          mQuery  = Query.And(queries);
                    MongoCursor <METoDo> cToDos  = ctx.ToDos.Collection.Find(mQuery);
                    List <METoDo>        meToDos = null;
                    SortByBuilder        sortBy  = MongoSortingUtils.GetSortByBuilder(dataRequest.Sort, typeof(METoDo));
                    cToDos = cToDos.SetSortOrder(sortBy);
                    cToDos = (MongoCursor <METoDo>)MongoSortingUtils.ApplySkipTake(cToDos, dataRequest);
                    response.TotalCount = cToDos.Count();
                    meToDos             = cToDos.ToList(); //query now

                    if (meToDos != null && meToDos.Count > 0)
                    {
                        todoList = new List <ToDoData>();
                        foreach (METoDo t in meToDos)
                        {
                            todoList.Add(new ToDoData
                            {
                                AssignedToId     = t.AssignedToId == null ? string.Empty : t.AssignedToId.ToString(),
                                CategoryId       = t.Category == null ? string.Empty : t.Category.ToString(),
                                ClosedDate       = t.ClosedDate,
                                CreatedById      = t.RecordCreatedBy.ToString(),
                                CreatedOn        = t.RecordCreatedOn,
                                Description      = t.Description,
                                DueDate          = t.DueDate,
                                StartTime        = t.StartTime,
                                Duration         = t.Duration,
                                Id               = t.Id.ToString(),
                                PatientId        = t.PatientId == null ? string.Empty : t.PatientId.ToString(),
                                PriorityId       = (int)t.Priority,
                                ProgramIds       = Helper.ConvertToStringList(t.ProgramIds),
                                StatusId         = (int)t.Status,
                                Title            = t.Title,
                                UpdatedOn        = t.LastUpdatedOn,
                                DeleteFlag       = t.DeleteFlag,
                                ExternalRecordId = t.ExternalRecordId,
                                SourceId         = t.SourceId.ToString()
                            });
                        }
                    }
                }
                response.ToDos = todoList;
                return(response);
            }
            catch (Exception ex)
            {
                throw new Exception("DD:MongoToDoRepository:FindToDos()::" + ex.Message, ex.InnerException);
            }
        }