public WebPayPalAuthorization getAuthorization(User me, string guid) { if (me.type == "admin") { PayPalAuthorization authorization = db.PayPalAuthorizations.SingleOrDefault(a => a.guid == guid); if (authorization != null) { WebPayPalAuthorization webAuth = new WebPayPalAuthorization(); webAuth.id = authorization.id; webAuth.guid = authorization.guid; webAuth.type = authorization.type; webAuth.bfksRegistrationId = authorization.bfksRegistrationId; webAuth.frostyRegistrationId = authorization.frostyRegistrationId; webAuth.userId = authorization.userId; webAuth.user = authorization.user != null?authorization.user.convert() : null; webAuth.email = authorization.email; webAuth.name = authorization.name; webAuth.date = authorization.date; return(webAuth); } else { return(null); } } else { throw new PermissionDeniedException(); } }
public string createAuthorization(WebPayPalAuthorization authorization, int currentUserId) { if ((authorization.type == "Logged-in" && currentUserId > 0) || (authorization.type == "Email" && currentUserId == -1) || (authorization.type == "Anonymous" && currentUserId == -1)) { if (authorization.type == "Logged-in" && (authorization.email != null || authorization.name != null)) { throw new Exception("Incompatible email or name provided while logged-in."); } if (authorization.type == "Email" && (String.IsNullOrWhiteSpace(authorization.email) || String.IsNullOrWhiteSpace(authorization.name))) { throw new Exception("Email or name not provided with Email type."); } if (authorization.type == "Anonymous" && (authorization.email != null || authorization.name != null)) { throw new Exception("Incompatible email or name provided with Anonymous type."); } PayPalAuthorization a = new PayPalAuthorization(); a.guid = Guid.NewGuid().ToString(); a.type = authorization.type; a.bfksRegistrationId = authorization.bfksRegistrationId; a.frostyRegistrationId = authorization.frostyRegistrationId; if (currentUserId > 0) { a.userId = currentUserId; } else { a.userId = null; } a.email = authorization.email; a.name = authorization.name; a.date = DateTime.UtcNow; db.PayPalAuthorizations.Add(a); db.SaveChanges(); return(a.guid); } else { throw new Exception("Invalid authorization type or currentUserId: type=" + authorization.type + ", currentUserId=" + currentUserId); } }
public HttpResponseMessage PostPayPalAuthorization(WebPayPalAuthorization authorization) { if (!ModelState.IsValid || authorization == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, ModelState)); } try { string guid = repo.createAuthorization(authorization, this.currentUserId); return(Request.CreateResponse(HttpStatusCode.OK, guid)); } catch (Exception e) { return(Request.CreateResponse(HttpStatusCode.BadRequest, e)); } }