public IHttpActionResult SaveStudent([FromBody] StudentApplicationDto application)
        {
            if (ModelState.IsValid)
            {
                return Authorized(token =>
                {
                    try
                    {
                        _volunteerApplicationService.SaveStudent(application);
                    }
                    catch (Exception exception)
                    {
                        var apiError = new ApiErrorDto("Volunteer Application POST Failed", exception);
                        throw new HttpResponseException(apiError.HttpResponseMessage);
                    }
                    return Ok();
                });
            }

            var errors = ModelState.Values.SelectMany(val => val.Errors)
                .Aggregate("", (current, err) => current + err.ErrorMessage + " ");
            var dataError = new ApiErrorDto("SaveStudent Data Invalid",
                new InvalidOperationException("Invalid SaveStudent Data" + errors));
            throw new HttpResponseException(dataError.HttpResponseMessage);
        }
Пример #2
0
        public IHttpActionResult Post(int groupId, [FromBody] List<ParticipantSignup> partId)
        {
            return Authorized(token =>
            {
                try
                {
                    groupService.addParticipantsToGroup(groupId, partId);
                    _logger.Debug(String.Format("Successfully added participants {0} to group {1}", partId, groupId));
                    return (Ok());
                }
                catch (GroupFullException e)
                {
                    var responseMessage = new ApiErrorDto("Group Is Full", e).HttpResponseMessage;

                    // Using HTTP Status code 422/Unprocessable Entity to indicate Group Is Full
                    // http://tools.ietf.org/html/rfc4918#section-11.2
                    responseMessage.StatusCode = (HttpStatusCode) 422;
                    throw new HttpResponseException(responseMessage);
                }
                catch (Exception e)
                {
                    _logger.Error("Could not add user to group", e);
                    return BadRequest();
                }
            });
        }
        public IHttpActionResult Post([FromBody] RespondToOpportunityDto opportunityResponse)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(val => val.Errors)
                    .Aggregate("", (current, err) => current + err.Exception.Message);
                var dataError = new ApiErrorDto("POST Data Invalid",
                    new InvalidOperationException("Invalid POST Data" + errors));
                throw new HttpResponseException(dataError.HttpResponseMessage);
            }

            try
            {
                if (opportunityResponse.Participants.Count > 0)
                {
                    _opportunityService.RespondToOpportunity(opportunityResponse);
                }
            }
            catch (Exception exception)
            {
                var apiError = new ApiErrorDto("Opportunity POST failed", exception);
                throw new HttpResponseException(apiError.HttpResponseMessage);
            }
            return Ok();
        }
        public IHttpActionResult Save([FromBody] TripApplicationDto dto)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message);
                var dataError = new ApiErrorDto("Save Trip Application Data Invalid", new InvalidOperationException("Invalid Save Data" + errors));
                throw new HttpResponseException(dataError.HttpResponseMessage);
            }

            TripApplicationResponseDto response;
            try
            {
                var message = _messageFactory.CreateMessage(dto);
                _eventQueue.Send(message, MessageQueueTransactionType.None);
                response = new TripApplicationResponseDto
                {
                    Message = "Queued event for asynchronous processing"
                };
            }
            catch (Exception e)
            {
                const string msg = "Unexpected error processing Trip Application Save";
                var responseDto = new TripApplicationResponseDto()
                {
                    Exception = new ApplicationException(msg, e),
                    Message = msg
                };
                return (RestHttpActionResult<TripApplicationResponseDto>.ServerError(responseDto));
            }
            return ((IHttpActionResult) RestHttpActionResult<TripApplicationResponseDto>.Ok(response));
        }
Пример #5
0
        private IHttpActionResult CreateDonorForUnauthenticatedUser(CreateDonorDTO dto)
        {
            ContactDonor donor;
            try
            {
                donor = _donorService.GetContactDonorForEmail(dto.email_address);
            }
            catch (Exception e)
            {
                var msg = "Error getting donor for email " + dto.email_address;
                logger.Error(msg, e);
                var apiError = new ApiErrorDto(msg, e);
                throw new HttpResponseException(apiError.HttpResponseMessage);
            }
            int existingDonorId = 
                (donor == null) ? 
                    0 : 
                    donor.DonorId;

            try
            {
                donor = _donorService.CreateOrUpdateContactDonor(donor, String.Empty, dto.email_address, dto.stripe_token_id, DateTime.Now);
            }
            catch (PaymentProcessorException e)
            {
                return (e.GetStripeResult());
            }
            catch (Exception e)
            {
                var msg = "Error creating donor for email " + dto.email_address;
                logger.Error(msg, e);
                var apiError = new ApiErrorDto(msg, e);
                throw new HttpResponseException(apiError.HttpResponseMessage);
            }

            var responseBody = new DonorDTO
            {
                Id = donor.DonorId,
                ProcessorId = donor.ProcessorId,
                RegisteredUser = false,
                Email = donor.Email
            };

            // HTTP StatusCode should be 201 (Created) if we created a donor, or 200 (Ok) if returning an existing donor
            var statusCode =
                (existingDonorId == donor.DonorId) ?
                    HttpStatusCode.OK :
                    HttpStatusCode.Created;
            return (ResponseMessage(Request.CreateResponse(statusCode, responseBody)));
        }
Пример #6
0
 public IHttpActionResult EventById(int eventId)
 {
     return Authorized(token => {
                                    try
                                    {
                                        return Ok(_eventService.GetEvent(eventId));
                                    }
                                    catch (Exception e)
                                    {
                                        var apiError = new ApiErrorDto("Get Event by Id failed", e);
                                        throw new HttpResponseException(apiError.HttpResponseMessage);   
                                    }
         
     });
 }
Пример #7
0
 public IHttpActionResult ChildrenEligibleForChildcare()
 {
     return Authorized(token =>
     {
         try
         {
             return Ok(_childcareService.MyChildren(token));
         }
         catch (Exception e)
         {
             var apiError = new ApiErrorDto("ChildrenEligibleForChildcare failed", e);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
Пример #8
0
 public IHttpActionResult GetFamilyServeDays(int contactId, long from = 0, long to = 0)
 {
     return Authorized(token =>
     {
         try
         {
             var servingDays = _serveService.GetServingDays(token, contactId, from, to);
             return Ok(servingDays);
         }
         catch (Exception exception)
         {
             var apiError = new ApiErrorDto("Get Family Serve Days Failed", exception);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
 public IHttpActionResult Post(DonorStatementDTO donorStatement)
 {
     return (Authorized(token =>
     {
         try
         {
             _donorStatementService.SaveDonorStatement(token, donorStatement);
             return this.Ok();
         }
         catch (Exception ex)
         {
             var apiError = new ApiErrorDto("Save Donor Statement", ex);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     }));
 }  
Пример #10
0
 public IHttpActionResult TripFormResponses(int selectionId, int selectionCount, int recordId)
 {
     return Authorized(token =>
     {
         try
         {
             var groups = _tripService.GetFormResponses(selectionId, selectionCount, recordId);
             return Ok(groups);
         }
         catch (Exception ex)
         {
             var apiError = new ApiErrorDto("GetGroupsForEvent Failed", ex);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
 public IHttpActionResult Get()
 {
     return (Authorized(token =>
     {
         try
         {
             var donorStatement = _donorStatementService.GetDonorStatement(token);
             return Ok(donorStatement);
         }                                
         catch (Exception ex)
         {
             var apiError = new ApiErrorDto("Get Donor Statement", ex);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     }));
 }
Пример #12
0
 public IHttpActionResult GetCampaigns(int campaignId)
 {
     return Authorized(token =>
     {
         try
         {
             var campaign = _tripService.GetTripCampaign(campaignId);
             return Ok(campaign);
         }
         catch (Exception ex)
         {
             var apiError = new ApiErrorDto("Get Campaign Failed", ex);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
Пример #13
0
 public IHttpActionResult GetFamily(int contactId = 0)
 {
     //TODO: I don't think you need to pass in contactId here, use the token
     return Authorized(token =>
     {
         try
         {
             var list = _serveService.GetImmediateFamilyParticipants(token);
             return Ok(list);
         }
         catch (Exception ex)
         {
             var apiError = new ApiErrorDto("GetFamily Failed", ex);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
Пример #14
0
 public IHttpActionResult GetFamilyWithTripInfo(int pledgeCampaignId)
 {
     return Authorized(token =>
     {
         try
         {
             var familyMembers = _tripService.GetFamilyMembers(pledgeCampaignId, token);
             return Ok(familyMembers);
         }
         catch (Exception ex)
         {
             var apiError = new ApiErrorDto("Get Family With Trip Info", ex);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
         
     });         
 }
Пример #15
0
 public IHttpActionResult RsvpToEvent([FromBody] EventRsvpDto eventRsvp)
 {
     if (ModelState.IsValid)
     {
         return Authorized(token =>
         {
             try
             {
                 _eventService.RegisterForEvent(eventRsvp, token);
                 return Ok();
             }
             catch (Exception e)
             {
                 var apiError = new ApiErrorDto("Save Event Rsvp", e);
                 throw new HttpResponseException(apiError.HttpResponseMessage);
             }
         });
     }
     var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message);
     var dataError = new ApiErrorDto("Event Data Invalid", new InvalidOperationException("Invalid Event Data" + errors));
     throw new HttpResponseException(dataError.HttpResponseMessage);
 }
Пример #16
0
        public IHttpActionResult SaveRsvp([FromBody] ChildcareRsvpDto saveRsvp)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message);
                var dataError = new ApiErrorDto("SaveRsvp Data Invalid", new InvalidOperationException("Invalid SaveRsvp Data" + errors));
                throw new HttpResponseException(dataError.HttpResponseMessage);
            }

            return Authorized(token =>
            {
                try
                {
                    _childcareService.SaveRsvp(saveRsvp, token);
                    return Ok();
                }
                catch (Exception e)
                {
                    var apiError = new ApiErrorDto("Childcare-SaveRsvp failed", e);
                    throw new HttpResponseException(apiError.HttpResponseMessage);
                }
            });
        }
Пример #17
0
        public IHttpActionResult GeneratePrivateInvite([FromBody] PrivateInviteDto dto)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message);
                var dataError = new ApiErrorDto("GeneratePrivateInvite Data Invalid", new InvalidOperationException("Invalid GeneratePrivateInvite Data" + errors));
                throw new HttpResponseException(dataError.HttpResponseMessage);
            }

            return Authorized(token =>
            {
                try
                {
                    _tripService.GeneratePrivateInvite(dto, token);
                    return Ok();
                }
                catch (Exception exception)
                {
                    var apiError = new ApiErrorDto("GeneratePrivateInvite Failed", exception);
                    throw new HttpResponseException(apiError.HttpResponseMessage);
                }
            });
        }
Пример #18
0
        public IHttpActionResult SaveRsvp([FromBody] SaveRsvpDto saveRsvp)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message);
                var dataError = new ApiErrorDto("RSVP Data Invalid", new InvalidOperationException("Invalid RSVP Data" + errors));
                throw new HttpResponseException(dataError.HttpResponseMessage);
            }
            //validate request
            if (saveRsvp.StartDateUnix <= 0)
            {
                var dateError = new ApiErrorDto("StartDate Invalid", new InvalidOperationException("Invalid Date"));
                throw new HttpResponseException(dateError.HttpResponseMessage);
            }

            return Authorized(token =>
            {
                var message = _messageFactory.CreateMessage(saveRsvp);
                _eventQueue.Send(message, MessageQueueTransactionType.None);

                // get updated events and return them               
                var updatedEvents = new UpdatedEvents();
                try
                {
                    updatedEvents.EventIds.AddRange(_serveService.GetUpdatedOpportunities(token, saveRsvp));
                }
                catch (Exception exception)
                {
                    var apiError = new ApiErrorDto("Save RSVP Failed", exception);
                    throw new HttpResponseException(apiError.HttpResponseMessage);
                }
                return Ok(updatedEvents);
            });
        }
Пример #19
0
        public IHttpActionResult Get(int groupId)
        {
            return Authorized(token =>
            {
                try
                {
                    var participant = participantService.GetParticipantRecord(token);
                    var contactId = authenticationService.GetContactId(token);

                    var detail = groupService.getGroupDetails(groupId, contactId, participant, token);

                    return Ok(detail);
                }
                catch (Exception e)
                {
                    var apiError = new ApiErrorDto("Get Group", e);
                    throw new HttpResponseException(apiError.HttpResponseMessage);
                }
                
            }
                );
        }
Пример #20
0
        public IHttpActionResult GetProfile(int contactId)
        {
            return Authorized(token =>
            {
                try
                {
                    // does the logged in user have permission to view this contact?
                    //TODO: Move this security logic to MP, if for some reason we absulutly can't then centerlize all security logic that exists in the gateway
                    var family = _serveService.GetImmediateFamilyParticipants(token);
                    Person person = null;
                    if (family.Where(f => f.ContactId == contactId).ToList().Count > 0)
                    {

                        person = _personService.GetPerson(contactId);
                    }
                    if (person == null)
                    {
                        return Unauthorized();
                    }
                    return this.Ok(person);
                }
                catch (Exception e)
                {
                    var apiError = new ApiErrorDto("Get Profile Failed", e);
                    throw new HttpResponseException(apiError.HttpResponseMessage);
                }
            });
        }
Пример #21
0
        public IHttpActionResult SaveParticipants([FromBody] SaveTripParticipantsDto dto)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message);
                var dataError = new ApiErrorDto("Trip-SaveParticipants Data Invalid", new InvalidOperationException("Invalid SaveParticipants Data" + errors));
                throw new HttpResponseException(dataError.HttpResponseMessage);
            }


            try
            {
                _tripService.SaveParticipants(dto);
                return Ok();
            }
            catch (Exception exception)
            {
                var apiError = new ApiErrorDto("SaveParticipants Failed", exception);
                throw new HttpResponseException(apiError.HttpResponseMessage);
            }
        }
Пример #22
0
 public IHttpActionResult GetOpportunityCapacity([FromUri] OpportunityCapacityDto oppCap)
 {
     return Authorized(token =>
     {
         try
         {
             var oppCapacity = _serveService.OpportunityCapacity(oppCap.Id, oppCap.EventId, oppCap.Min, oppCap.Max);
             if (oppCapacity == null)
             {
                 return Unauthorized();
             }
             return Ok(oppCapacity);
         }
         catch (Exception exception)
         {
             var apiError = new ApiErrorDto("Get Opportunity Capacity Failed", exception);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
 public IHttpActionResult GetResponseForOpportunity(int id, int contactId)
 {
     try
     {
         var response = _opportunityService.GetOpportunityResponse(contactId, id);
         var mapped = Mapper.Map<Response, OpportunityResponseDto>(response);
         return Ok(mapped);
     }
     catch (Exception exception)
     {
         var apiError = new ApiErrorDto("Get Response For Opportunity", exception);
         throw new HttpResponseException(apiError.HttpResponseMessage);
     }
 }
Пример #24
0
        public IHttpActionResult Post([FromBody]Credentials cred)
        {
            try
            {
                // try to login 
                var authData = TranslationService.Login(cred.username, cred.password);
                var token = authData["token"].ToString();
                var exp = authData["exp"].ToString();

                if (token == "")
                {
                    return this.Unauthorized();
                }

                var userRoles = _personService.GetLoggedInUserRoles(token);
                var p = _personService.GetLoggedInUserProfile(token);
                var r = new LoginReturn
                {
                    userToken = token,
                    userTokenExp = exp,
                    userId = p.ContactId,
                    username = p.FirstName,
                    userEmail = p.EmailAddress,
                    roles = userRoles,
                    age = p.Age
                };

                _loginService.ClearResetToken(cred.username);

                //ttpResponseHeadersExtensions.AddCookies();

                return this.Ok(r);
            }
            catch (Exception e)
            {
                var apiError = new ApiErrorDto("Login Failed", e);
                throw new HttpResponseException(apiError.HttpResponseMessage);
            }
        }
Пример #25
0
 public IHttpActionResult MyTrips()
 {
     return Authorized(token =>
     {
         try
         {
             var trips = _tripService.GetMyTrips(token);
             return Ok(trips);
         }
         catch (Exception ex)
         {
             var apiError = new ApiErrorDto("Failed to retrieve My Trips info", ex);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
Пример #26
0
 public IHttpActionResult GetQualifiedServers(int groupId, int opportunityId)
 {
     return Authorized(token =>
     {
         try
         {
             var list = _serveService.GetQualifiedServers(groupId, opportunityId, token);
             return Ok(list);
         }
         catch (Exception ex)
         {
             var apiError = new ApiErrorDto("GetQualifiedServers Failed", ex);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
Пример #27
0
 public IHttpActionResult Search(string query)
 {
     try
     {
         var list = _tripService.Search(query);
         return Ok(list);
     }
     catch (Exception ex)
     {
         var apiError = new ApiErrorDto("Trip Search Failed", ex);
         throw new HttpResponseException(apiError.HttpResponseMessage);
     }
 }
Пример #28
0
 public IHttpActionResult ValidatePrivateInvite(int pledgeCampaignId, string guid)
 {
     return Authorized(token =>
     {
         try
         {
             var retVal = new ValidatePrivateInviteDto {Valid = _tripService.ValidatePrivateInvite(pledgeCampaignId, guid, token)};
             return Ok(retVal);
         }
         catch (Exception exception)
         {
             var apiError = new ApiErrorDto("ValidatePrivateInvite Failed", exception);
             throw new HttpResponseException(apiError.HttpResponseMessage);
         }
     });
 }
Пример #29
0
        public IHttpActionResult Post([FromBody] Person person)
        {
            if (ModelState.IsValid)
            {
                return Authorized(t =>
                {
                    // does the logged in user have permission to view this contact?
                    var family = _serveService.GetImmediateFamilyParticipants(t);

                    if (family.Where(f => f.ContactId == person.ContactId).ToList().Count > 0)
                    {
                        try
                        {
                            _personService.SetProfile(t, person);
                            return this.Ok();
                        }
                        catch (Exception ex)
                        {
                            var apiError = new ApiErrorDto("Profile update Failed", ex);
                            throw new HttpResponseException(apiError.HttpResponseMessage);
                        }
                    }
                    else
                    {
                        return this.Unauthorized();
                    }
                });
            }
            var errors = ModelState.Values.SelectMany(val => val.Errors).Aggregate("", (current, err) => current + err.Exception.Message);
            var dataError = new ApiErrorDto("Save Trip Application Data Invalid", new InvalidOperationException("Invalid Save Data" + errors));
            throw new HttpResponseException(dataError.HttpResponseMessage);
        }
Пример #30
0
 public IHttpActionResult TripParticipant(string tripParticipantId)
 {
     try
     {
         // Get Participant
         var participant = _tripService.Search(tripParticipantId).FirstOrDefault();
         return Ok(participant);
     }
     catch (Exception ex)
     {
         var apiError = new ApiErrorDto("Trip Search Failed", ex);
         throw new HttpResponseException(apiError.HttpResponseMessage);
     }
 }