예제 #1
0
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            if (actionContext.Request.Method.Method != "GET")
            {
                string y              = "";
                int?   COMBRNID       = null;
                var    urlStrF        = "";
                string controllerName =
                    actionContext.ControllerContext.ControllerDescriptor.ControllerName;

                string actionName =
                    actionContext.ActionDescriptor.ActionName;
                var ss = actionContext.Request.Headers.Where(a => a.Key == "userNameLog").SingleOrDefault();
                if (ss.Value != null)
                {
                    string[] s = actionContext.Request.Headers.Where(a => a.Key == "userNameLog").SingleOrDefault().Value.ToArray();
                    y = s[0];
                    if (y.Split('@').Count() > 0)
                    {
                        y = y.Split('@')[0];
                    }
                }
                ;
                var urlV = actionContext.Request.Headers.Where(a => a.Key == "myCustomUrl").SingleOrDefault();
                if (urlV.Value != null)
                {
                    string[] s = actionContext.Request.Headers.Where(a => a.Key == "myCustomUrl").SingleOrDefault().Value.ToArray();
                    urlStrF = s[0];

                    if (urlStrF.Contains("foo"))
                    {
                        urlStrF = System.Text.RegularExpressions.Regex.Split(urlStrF, "&foo")[0];
                        var x = urlStrF;
                        if (x.Contains("foo"))
                        {
                            urlStrF = x.Split('?')[0];
                        }
                    }
                }
                ;

                var CompB = actionContext.Request.Headers.Where(a => a.Key == "COMBRNID").SingleOrDefault();
                if (CompB.Value != null)
                {
                    string[] CompBs = actionContext.Request.Headers.Where(a => a.Key == "COMBRNID").SingleOrDefault().Value.ToArray();
                    if (CompBs[0] == "")
                    {
                        COMBRNID = 0;
                    }
                    else
                    {
                        COMBRNID = int.Parse(CompBs[0]);
                    }
                }
                ;

                UserFormObj = new UserLogFile()
                {
                    UID        = y,
                    DateOnly   = DateTime.Now.Date,
                    FormName   = controllerName,
                    OpDate     = DateTime.Now,
                    OpName     = actionName,
                    Comp_Brach = COMBRNID,
                    URL        = urlStrF
                };
            }
        }
        //public Task<UserLogFile> InsertAsync(UserLogFile entity)
        //{
        //    return Task.Run<UserLogFile>(() =>
        //    {

        //        UserLogFileRepo.Add(entity);
        //        return entity;
        //    }
        //      );

        //}

        public Task <UserLogFile> Insert(UserLogFile entity)
        {
            return(Task.Run <UserLogFile>(() =>
            {
                if (entity != null)
                {
                    var q = UserOperationRepo.GetAll().Where(a => a.LatName == entity.OpName).FirstOrDefault();
                    if (q != null)
                    {
                        entity.OpName = q.ARName;
                    }

                    if (entity.FormName.Split('_').Count() > 1 || entity.FormName.Split('?').Count() > 1 || entity.FormName.Split('&').Count() > 1)
                    {
                        foreach (var item in UserFormRepo.GetAll())
                        {
                            if (item.Code.Split('/').Count() > 1)
                            {
                                var q2 = UserFormRepo.GetAll().Where(a => (a.Code.Split('/')[0] == entity.FormName.Split('_')[0]) || (a.Code.Split('/')[0] == entity.FormName.Split('?')[0]) || (a.Code.Split('/')[0] == entity.FormName.Split('&')[0]));
                                foreach (var childItem in q2)
                                {
                                    if (entity.FormName.Split('_').Count() > 1)
                                    {
                                        var q3 = BILL_SETTINGSRepo.GetAll().Where(a => a.BILL_SETTING_ID == int.Parse(entity.FormName.Split('_')[1])).SingleOrDefault();
                                        if (q3 != null)
                                        {
                                            //entity.FormName = q3.BILL_AR_NAME;

                                            //entity.Code = entity.FormName.Split('_')[2];
                                            entity.TypeName = q3.BILL_AR_NAME;
                                            entity.FormName = UserFormRepo.GetAll().Where(a => (a.Code == entity.FormName.Split('_')[0]) || (a.Code == entity.FormName.Split('?')[0]) || (a.Code == entity.FormName.Split('&')[0])).SingleOrDefault().ARName;

                                            //if (entity.Notes != null)
                                            //{
                                            //     var temp = entity.Notes;
                                            //    entity.Notes = null;
                                            //    entity.Notes = entity.TypeName + " رقم " + temp;
                                            //}
                                        }
                                        else
                                        {
                                            entity.FormName = childItem.ARName;
                                        }
                                    }

                                    if (entity.FormName.Split('?').Count() > 1)
                                    {
                                        var q4 = ENTRY_SETTINGSRepo.GetAll().Where(a => a.ENTRY_SETTING_ID == int.Parse(entity.FormName.Split('?')[1])).SingleOrDefault();
                                        if (q4 != null)
                                        {
                                            //entity.FormName = q4.ENTRY_SETTING_AR_NAME;

                                            //entity.Code = entity.FormName.Split('?')[2];
                                            entity.TypeName = q4.ENTRY_SETTING_AR_NAME;

                                            //if (entity.Notes != null)
                                            //{
                                            //    var temp = entity.Notes;
                                            //    entity.Notes = null;
                                            //    entity.Notes = entity.TypeName + " رقم " + temp;
                                            //}
                                            var x = UserFormRepo.GetAll().Where(a => (a.Code == entity.FormName.Split('_')[0]) || (a.Code == entity.FormName.Split('?')[0]) || (a.Code == entity.FormName.Split('&')[0])).SingleOrDefault();
                                            if (x != null)
                                            {
                                                entity.FormName = x.ARName;
                                            }
                                            //entity.FormName = childItem.ARName;
                                            //entity.FormName = UserFormRepo.GetAll().Where(a => (a.Code == entity.FormName.Split('_')[0]) || (a.Code == entity.FormName.Split('?')[0]) || (a.Code == entity.FormName.Split('&')[0])).SingleOrDefault().ARName;
                                        }
                                        else
                                        {
                                            entity.FormName = childItem.ARName;
                                        }
                                    }

                                    if (entity.FormName.Split('&').Count() > 1)
                                    {
                                        var q5 = ACCOUNTSRepo.GetAll().Where(a => a.ACC_ID == int.Parse(entity.FormName.Split('&')[1])).SingleOrDefault();
                                        if (q5 != null)
                                        {
                                            var q4 = ACCOUNTS_TYPESRepo.GetAll().Where(a => a.ACC_TYPE_ID == q5.ACC_TYPE_ID).SingleOrDefault();
                                            if (q4 != null)
                                            {
                                                entity.Code = entity.FormName.Split('&')[2];
                                                entity.TypeName = q4.ACC_TYPE_AR_NAME;
                                                entity.FormName = childItem.ARName;
                                            }
                                            else
                                            {
                                                entity.FormName = childItem.ARName;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        if (entity.FormName.Split('+').Count() > 1)
                        {
                            var q2 = UserFormRepo.GetAll().Where(a => a.Code == entity.FormName.Split('+')[0]).FirstOrDefault();
                            if (q2 != null)
                            {
                                entity.Code = entity.FormName.Split('+')[1];
                                entity.FormName = q2.ARName;
                            }
                        }
                        else
                        {
                            var q2 = UserFormRepo.GetAll().Where(a => a.Code == entity.FormName).FirstOrDefault();
                            if (q2 != null)
                            {
                                entity.FormName = q2.ARName;
                            }
                        }

                        //if (entity.Notes != null&& entity.TypeName==null)
                        //{
                        //    var temp = entity.Notes;
                        //    entity.Notes = null;
                        //    entity.Notes = entity.FormName + " رقم " + temp;
                        //}
                    }

                    //var q2 = UserFormRepo.GetAll().Where(a => a.Code == entity.FormName).FirstOrDefault();
                    //if (q2 != null)
                    //{
                    //    entity.FormName = q2.ARName;
                    //}
                    if (entity.Notes != null)
                    {
                        var temp = entity.Notes;
                        entity.Notes = null;
                        if (entity.TypeName != null)
                        {
                            entity.Notes = entity.TypeName + " رقم " + temp;
                        }
                        else
                        {
                            entity.Notes = entity.FormName + " رقم " + temp;
                        }
                    }
                    if (entity.IDCRUD != "1")
                    {
                        UserLogFileRepo.Add(entity);
                    }
                }

                return entity;
            }
                                          ));
        }