public override void OnActionExecuting(HttpActionContext actionContext)
        {
            object data = actionContext.ActionArguments["model"];

            logger.Information("Save request: User {Name}, Data {@Data}",
                               actionContext.RequestContext.Principal.Identity.Name, data);

            if (data != null)
            {
                string username = actionContext.RequestContext.Principal.Identity.Name;
                var    isEntity = data is Entity;
                Entity entity   = data as Entity;
                if (isEntity)
                {
                    entity.Id         = Guid.NewGuid().ToString();
                    entity.Created    = DateTime.UtcNow;
                    entity.Modified   = DateTime.UtcNow;
                    entity.CreatedBy  = username;
                    entity.ModifiedBy = username;
                }
                var isShopChild = data is ShopChild;
                if (isShopChild)
                {
                    var             shopChild = data as ShopChild;
                    var             manager   = actionContext.Request.GetOwinContext().Get <ApplicationUserManager>();
                    var             id        = actionContext.RequestContext.Principal.Identity.GetUserId();
                    ApplicationUser user      = manager.FindById(id);
                    shopChild.ShopId = user.ShopId;
                }

                ClientRequestModel client = new ClientRequestModel(actionContext)
                {
                    UserName = username
                };
                string clientConnectionId = client.ConnectionId;
                Thread.SetData(Thread.GetNamedDataSlot("ConnectionId"), clientConnectionId);
                Trace.TraceInformation("Trace Request: {0}  clientConnectionId: {1}", client, clientConnectionId);
                string clientStr = client.ToString();
                logger.Debug("Client details: {0} ", clientStr);
                logger.Debug("EntitySaveObject: {1}", entity);
            }
            else
            {
                actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Data must not be empty");
            }
        }
Exemplo n.º 2
0
        public override Task OnActionExecutingAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
        {
            ApplicationUserManager manager = actionContext.Request.GetOwinContext().Get <ApplicationUserManager>();

            string username = actionContext.RequestContext.Principal.Identity.Name;

            if (!string.IsNullOrWhiteSpace(username))
            {
                ApplicationUser user = manager.FindByName(username);
                if (user != null)
                {
                    actionContext.Request.Properties.Add("AppUser", user);
                    dynamic controller = actionContext.ControllerContext.Controller;
                    controller.AppUser = user;
                    ClientRequestModel client = new ClientRequestModel(actionContext)
                    {
                        UserName = user.UserName,
                        ShopId   = user.ShopId
                    };

                    string clientConnectionId = client.ConnectionId;
                    Thread.SetData(Thread.GetNamedDataSlot("AppUser"), user);
                    Trace.TraceInformation("Trace Query Request: {0} {1}", client, clientConnectionId);
                    string clientStr = client.ToString();
                    logger.Debug("Query Request: {ClientStr} {ConnectionId}", clientStr, clientConnectionId);
                    bool containsKey = actionContext.ActionArguments.ContainsKey("request");
                    if (containsKey)
                    {
                        dynamic request = actionContext.ActionArguments["request"];
                        request.ShopId = user.ShopId;
                        if (request.Keyword != null)
                        {
                            logger.Debug("Request model : {Username} requested {RawUrl} with values {@Request}", username, client.RawUrl, request);
                        }
                    }
                }
            }


            return(base.OnActionExecutingAsync(actionContext, cancellationToken));
        }