Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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));
        }