public HttpResponseMessage SaveSponsorship(HttpRequestMessage request, SponsorshipViewModel sponsorship)
        {
            var newSponsorship = sponsorship.ReverseMap();

            var existing = _studentApi.GetSponsorship(sponsorship.ID);

            _studentApi.SaveSponsorship(newSponsorship);

            if (existing == null)
            {
                var sponsor = _sponsorApi.GetSponsor(newSponsorship.SponsorId);

                var points = newSponsorship.Rating * 10;

                sponsor.BursifyScore += points;

                _sponsorApi.SaveSponsor(sponsor);
            }

            var model = new SponsorshipViewModel();

            var sponsorshipVm = model.SingleSponsorshipMap(newSponsorship);

            var response = request.CreateResponse(HttpStatusCode.OK, sponsorshipVm);

            return(response);
        }
        public HttpResponseMessage GetSearchSponsorships(HttpRequestMessage request, string criteria)
        {
            var sponsorships = _studentApi.SearchSponsorships(criteria);

            var sponsorshipVm = SponsorshipViewModel.MultipleSponsorshipsMap(sponsorships);

            var response = request.CreateResponse(HttpStatusCode.OK, sponsorshipVm);

            return(response);
        }
        public HttpResponseMessage GetSponsorship(HttpRequestMessage request, int sponsorshipId, int userId)
        {
            var sponsorship = _studentApi.GetSponsorship(sponsorshipId, userId);

            var model = new SponsorshipViewModel();

            var sponsorshipVm = model.SingleSponsorshipMap(sponsorship);

            sponsorshipVm.ApplicantCount     = _sponsorApi.GetStudentsApplying(sponsorshipVm.ID).Count;
            sponsorshipVm.SponsorPicturePath = _sponsorApi.GetUserInfo(sponsorshipVm.SponsorId).ProfilePicturePath;

            var response = request.CreateResponse(HttpStatusCode.OK, sponsorshipVm);

            return(response);
        }
        public HttpResponseMessage GetAllSponsorships(HttpRequestMessage request, string type)
        {
            var sponsorships = _studentApi.GetAllSponsorships(type);

            var sponsorshipVm = SponsorshipViewModel.MultipleSponsorshipsMap(sponsorships);

            foreach (var sponsorship in sponsorshipVm)
            {
                sponsorship.ApplicantCount     = _sponsorApi.GetStudentsApplying(sponsorship.ID).Count;
                sponsorship.SponsorPicturePath = _sponsorApi.GetUserInfo(sponsorship.SponsorId).ProfilePicturePath;
            }

            var response = request.CreateResponse(HttpStatusCode.OK, sponsorshipVm);

            return(response);
        }