public virtual int?GetEntityId(IDictionary <string, object> actionArguments) { int?id = null; int parseId = 0; IModelIdentifier requestModel = null; string idField = this.EntityIdField ?? "id"; ISelectModelIdentifier updateModel = null; if (actionArguments.ContainsKey("model")) { updateModel = actionArguments["model"] as ISelectModelIdentifier; if (updateModel != null) { updateModel = actionArguments["model"] as ISelectModelIdentifier; return(updateModel.SelectId); } requestModel = actionArguments["model"] as IModelIdentifier; if (requestModel != null) { id = requestModel.Id; } } else if (actionArguments.ContainsKey(idField)) { if (actionArguments.ContainsKey(idField) && int.TryParse(actionArguments[idField].ToString(), out parseId)) { id = parseId; } } return(id); }
public virtual int?SetEntityId(IDictionary <string, object> actionArguments, ActionExecutingContext actionContext) { int? id = null; int parseId = 0; object oId = null; IModelIdentifier requestModel = null; string idField = "id"; requestModel = actionArguments["model"] as IModelIdentifier; ControllerBase c = actionContext.Controller as ControllerBase; actionContext.RouteData?.Values?.TryGetValue(idField, out oId); if (oId != null) { Int32.TryParse(oId.ToString(), out parseId); if (parseId > 0) { requestModel.Id = parseId; actionContext.ModelState.Clear(); if (requestModel.Id <= 0) { c.ModelState.AddModelError("Id", "An Id is Required"); } c.TryValidateModel(requestModel); } else { c.ModelState.AddModelError("Id", "A valid Id is Required"); } } else { c.ModelState.AddModelError("Id", "An Id is Required"); } if (!c.ModelState.IsValid) { ErrorResponse err = new ErrorResponse(c.ModelState.Values .SelectMany(e => e.Errors) .Select(e => e.ErrorMessage)); var result = new BadRequestObjectResult(err); result.ContentTypes.Add("application/json"); actionContext.Result = result; } return(id); }
public virtual object GetEntityId(Dictionary <string, object> actionArguments, HttpRequestMessage request) { object id = null; IModelIdentifier requestModel = null; string idField = this.EntityIdField ?? "id"; if (actionArguments.ContainsKey("model")) { requestModel = actionArguments["model"] as IModelIdentifier; if (requestModel != null) { id = requestModel.Id; } } else if (actionArguments.ContainsKey(idField)) { id = actionArguments[idField]; } return(id); }
private bool ValidateArguments(Dictionary <string, object> actionArguments) { IModelIdentifier requestModel = null; object id = null; string userId = this.IdentityProvider.GetCurrentUserId(); string idField = this.EntityIdField ?? "id"; if (actionArguments.ContainsKey("model")) { requestModel = actionArguments["model"] as IModelIdentifier; if (requestModel != null) { id = requestModel.Id; } } else if (actionArguments.ContainsKey(idField)) { id = actionArguments[idField]; } return(this.ISecureEntities.IsAuthorized(userId, id, this.Action, this.EntityTypeId)); }