Ejemplo n.º 1
0
        public MpChildcareRequest GetChildcareRequestForReview(int childcareRequestId)
        {
            var apiToken = _apiUserService.GetToken();
            var record   = _ministryPlatformService.GetRecordDict(_childcareRequestPageId, childcareRequestId, apiToken);
            List <MpChildcareRequestDate> daterecords = GetChildcareRequestDates(childcareRequestId);
            var datesList = daterecords.Select(dateRec => dateRec.RequestDate).ToList();

            if (record == null)
            {
                return(null);
            }
            var childcareRequest = new MpChildcareRequest
            {
                RequesterId   = record.ToInt("Requester_ID"),
                LocationId    = record.ToInt("Congregation_ID"),
                MinistryId    = record.ToInt("Ministry_ID"),
                GroupId       = record.ToInt("Group_ID"),
                GroupName     = record.ToString("Group_ID_Text"),
                StartDate     = record.ToDate("Start_Date"),
                EndDate       = record.ToDate("End_Date"),
                Frequency     = record.ToString("Frequency"),
                PreferredTime = record.ToString("Childcare_Session"),
                Status        = record.ToString("Request_Status_ID_Text"),
                Notes         = record.ToString("Notes"),
                DecisionNotes = record.ToString("Decision_Notes"),
                DatesList     = datesList
            };

            return(childcareRequest);
        }
        public void UpdateRequest()
        {
            var request = new MpChildcareRequest
            {
                ChildcareRequestId = 999,
                RequesterId        = 1,
                LocationId         = 2,
                MinistryId         = 3,
                GroupId            = 4,
                StartDate          = DateTime.Today,
                EndDate            = DateTime.Today.AddDays(7),
                Frequency          = "Weekly",
                PreferredTime      = "8:00AM to 9:00AM",
                Notes = "This is a test request"
            };

            var requestDict = new Dictionary <string, object>
            {
                { "Childcare_Request_ID", request.ChildcareRequestId },
                { "Requester_ID", request.RequesterId },
                { "Congregation_ID", request.LocationId },
                { "Ministry_ID", request.MinistryId },
                { "Group_ID", request.GroupId },
                { "Start_Date", request.StartDate },
                { "End_Date", request.EndDate },
                { "Frequency", request.Frequency },
                { "Childcare_Session", request.PreferredTime },
                { "Notes", request.Notes },
                { "Request_Status_ID", _childcareRequestPending }
            };

            _ministryPlatformService.Setup(m => m.UpdateRecord(_childcareRequestPage, requestDict, It.IsAny <string>()));
            _fixture.UpdateChildcareRequest(request);
            _ministryPlatformService.VerifyAll();
        }
Ejemplo n.º 3
0
        public void CreateChildcareRequestDates(int childcareRequestId, MpChildcareRequest request, string token)
        {
            var datesList = request.DatesList ?? new List <DateTime>();

            foreach (var date in datesList)
            {
                var requestDate      = new DateTime(date.Year, date.Month, date.Day, 0, 0, 0);
                var requestDatesDict = new Dictionary <String, Object>
                {
                    { "Childcare_Request_ID", childcareRequestId },
                    { "Childcare_Request_Date", requestDate },
                    { "Approved", false }
                };
                _ministryPlatformService.CreateSubRecord(_childcareRequestDatesId, childcareRequestId, requestDatesDict, token, false);
            }
        }
Ejemplo n.º 4
0
        public MpChildcareRequest ToMPChildcareRequest()
        {
            var mpReq = new MpChildcareRequest
            {
                RequesterId        = this.RequesterId,
                LocationId         = this.LocationId,
                MinistryId         = this.MinistryId,
                GroupId            = this.GroupId,
                StartDate          = this.StartDate,
                EndDate            = this.EndDate,
                Frequency          = this.Frequency,
                PreferredTime      = this.PreferredTime,
                DatesList          = this.DatesList,
                Notes              = this.Notes,
                DecisionNotes      = this.DecisionNotes,
                ChildcareRequestId = this.ChildcareRequestId
            };

            return(mpReq);
        }
Ejemplo n.º 5
0
        public void UpdateChildcareRequest(MpChildcareRequest request)
        {
            var apiToken = _apiUserService.GetToken();

            var requestDict = new Dictionary <string, object>
            {
                { "Childcare_Request_ID", request.ChildcareRequestId },
                { "Requester_ID", request.RequesterId },
                { "Congregation_ID", request.LocationId },
                { "Ministry_ID", request.MinistryId },
                { "Group_ID", request.GroupId },
                { "Start_Date", request.StartDate },
                { "End_Date", request.EndDate },
                { "Frequency", request.Frequency },
                { "Childcare_Session", request.PreferredTime },
                { "Notes", request.Notes },
                { "Request_Status_ID", _childcareRequestStatusPending }
            };

            _ministryPlatformService.UpdateRecord(_childcareRequestPageId, requestDict, apiToken);
        }
Ejemplo n.º 6
0
        private Dictionary <int, int> GetChildcareEventsfortheDates(List <MpEvent> events, List <MpChildcareRequestDate> requestedDates, MpChildcareRequest request)
        {
            var prefTime         = request.PreferredTime.Substring(request.PreferredTime.IndexOf(',') + 1).Split('-');
            var requestStartTime = DateTime.ParseExact(prefTime[0].Trim(), "h:mmtt", CultureInfo.InvariantCulture);
            var requestEndTime   = DateTime.ParseExact(prefTime[1].Trim(), "h:mmtt", CultureInfo.InvariantCulture);
            var childcareEvents  = new Dictionary <int, int>();

            foreach (var date in requestedDates)
            {
                var foundEvent = events.FindAll(
                    e => (e.EventStartDate == date.RequestDate.Date.Add(requestStartTime.TimeOfDay) &&
                          (e.EventEndDate == date.RequestDate.Date.Add(requestEndTime.TimeOfDay)) &&
                          (e.CongregationId == request.LocationId)));
                if (foundEvent.Count > 1)
                {
                    throw new DuplicateChildcareEventsException(date.RequestDate);
                }
                if (foundEvent != null)
                {
                    foreach (var eachEvent in foundEvent)
                    {
                        childcareEvents.Add(date.ChildcareRequestDateId, eachEvent.EventId);
                    }
                }
            }
            return(childcareEvents);
        }
Ejemplo n.º 7
0
        public List <MpEvent> FindChildcareEvents(int childcareRequestId, List <MpChildcareRequestDate> requestedDates, MpChildcareRequest request)
        {
            var apiToken = _apiUserService.GetToken();
            var events   = _eventService.GetEventsByTypeForRange(_childcareEventType, request.StartDate, request.EndDate, apiToken, false);

            return(events);
        }
Ejemplo n.º 8
0
        public void DecisionChildcareRequest(int childcareRequestId, int requestStatusId, MpChildcareRequest childcareRequest)
        {
            var apiToken = _apiUserService.GetToken();


            var requestDict = new Dictionary <string, object>
            {
                { "Childcare_Request_ID", childcareRequestId },
                { "Request_Status_ID", requestStatusId }
            };

            if (childcareRequest.DecisionNotes != null)
            {
                requestDict.Add("Decision_Notes", childcareRequest.DecisionNotes);
            }

            _ministryPlatformService.UpdateRecord(_childcareRequestPageId, requestDict, apiToken);
        }