public HttpResponseMessage UpdateFundingPackage(FundingPackageModel fundingPackage, int projectId, int fundingPackageId) { if (!ModelState.IsValid || projectId <= 0 || fundingPackageId <= 0) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } var identity = User.Identity as ClaimsIdentity; using (var s = new FundingPackageRepository()) { var httpStatusCode = HttpStatusCode.OK; FundingPackageRepository.StatusCodes hasUpdated = s.EditFundingPackage(fundingPackage, identity, projectId, fundingPackageId); switch (hasUpdated) { //project or funding package not found case FundingPackageRepository.StatusCodes.NOT_FOUND: httpStatusCode = HttpStatusCode.NotFound; break; //not authorized to update this funding package. You are not the project creator that has this specific funding package case FundingPackageRepository.StatusCodes.NOT_AUTHORIZED: httpStatusCode = HttpStatusCode.MethodNotAllowed; break; //funding package updated ok case FundingPackageRepository.StatusCodes.OK: httpStatusCode = HttpStatusCode.OK; break; } return(Request.CreateResponse(httpStatusCode)); } }
public HttpResponseMessage DeleteFundingPackage(int projectId, int fundingPackageId) { if (projectId <= 0 || fundingPackageId <= 0) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } var identity = User.Identity as ClaimsIdentity; using (var s = new FundingPackageRepository()) { var httpStatusCode = HttpStatusCode.NoContent; FundingPackageRepository.StatusCodes hasDeleted = s.DeleteFundingPackage(identity, projectId, fundingPackageId); switch (hasDeleted) { //project not found or funding package to delete not found case FundingPackageRepository.StatusCodes.NOT_FOUND: httpStatusCode = HttpStatusCode.NotFound; break; //not authorized to delete this funding package - either you are not the project creator or this is a donations package automatically created by the system case FundingPackageRepository.StatusCodes.NOT_AUTHORIZED: httpStatusCode = HttpStatusCode.MethodNotAllowed; break; //funding package deleted ok case FundingPackageRepository.StatusCodes.OK: httpStatusCode = HttpStatusCode.NoContent; break; } return(Request.CreateResponse(httpStatusCode)); } }
public HttpResponseMessage CreateFundingPackage(FundingPackageModel fundingPackage, int projectId) { if (!ModelState.IsValid || projectId <= 0) { return(Request.CreateResponse(HttpStatusCode.BadRequest)); } var identity = User.Identity as ClaimsIdentity; using (var s = new FundingPackageRepository()) { var httpStatusCode = HttpStatusCode.Created; FundingPackageRepository.StatusCodes hasInserted = s.CreateFundingPackage(fundingPackage, identity, projectId, false); switch (hasInserted) { //project for inserting the funding package not found case FundingPackageRepository.StatusCodes.NOT_FOUND: httpStatusCode = HttpStatusCode.NotFound; break; //not authorized to add this funding package to this specific project case FundingPackageRepository.StatusCodes.NOT_AUTHORIZED: httpStatusCode = HttpStatusCode.MethodNotAllowed; break; //funding package inserted ok case FundingPackageRepository.StatusCodes.OK: httpStatusCode = HttpStatusCode.Created; break; } return(Request.CreateResponse(httpStatusCode)); } }