public ActionResult SaveUnit(string ChkActive, Units objUnit)
        {
            try
            {
                UnitsDAL objCtrl = new UnitsDAL();

                objUnit.Active = !string.IsNullOrEmpty(ChkActive);

                if (objUnit.Id > 0)
                {
                    objUnit.UpdatedAt = DateTime.Now;
                    objUnit.UpdatedBy = SysBaseInfor.GetCurrentUserId();
                    objCtrl.UpdateItem(objUnit);
                }
                else
                {
                    objUnit.CreatedAt = DateTime.Now;
                    objUnit.CreatedBy = SysBaseInfor.GetCurrentUserId();
                    objCtrl.CreateItem(objUnit);
                    string adminName = "admin@" + objUnit.Code;
                    string adminPass = "******";
                    string roleName  = "UnitsAdmin";
                    InitializeIdentity(HttpContext.GetOwinContext(), adminName, adminPass, roleName, 1, 0, objUnit.Code, objUnit.Id);
                }

                return(PartialView(urlView + "_DetailUnit.cshtml", objUnit));
            }
            catch (Exception ex)
            {
                return(PartialView(urlView + "_DetailUnit.cshtml", new Modules()));
            }
        }
Example #2
0
 public string UploadAllImageInNewsToServer(string contentNews, int newsId)
 {
     try
     {
         UnitsDAL unitCtrl = new UnitsDAL();
         var      unitTmp = unitCtrl.GetItemByID("Id", SysBaseInfor.GetCurrentUnitId().ToInt32());
         var      mediaUrl = unitTmp.MediaUrl;
         var      tmpContentNews = contentNews;
         var      linkParser = new Regex(@"\b(?:https?://|www\.)[^ \f\n\r\v\t\""\'\]]+\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);
         string   link, linkNew;
         foreach (Match m in linkParser.Matches(contentNews))
         {
             link = m.Value;
             if (link.IndexOf(mediaUrl) < 0)
             {
                 linkNew = UploadImageToServer(HttpUtility.HtmlDecode(link), newsId, mediaUrl);
                 if (!string.IsNullOrEmpty(linkNew))
                 {
                     tmpContentNews = tmpContentNews.Replace(link, linkNew);
                 }
             }
         }
         return(tmpContentNews);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            //AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);

            if (model.UnitName == null)
            {
                model.UnitName = SysBaseInfor.DefaultUnit;
            }
            //if (!ModelState.IsValid)
            //{
            //    return View(model);
            //}

            UnitsDAL unitCtrl = new UnitsDAL();
            Units    unitObj  = unitCtrl.GetUnitByCode(model.UnitName);

            var result = SignInStatus.Failure;

            if ((model.UserName.ToLower() == SysBaseInfor.SuperAdmin.ToLower()) || (unitObj != null && (unitObj.Active == true)))
            {
                result = await SignInHelper.PassworCheck(unitObj, model.UserName.ToLower(), model.Password, model.RememberMe, shouldLockout : false);
            }

            switch (result)
            {
            case SignInStatus.Success:

                // gan session
                Session["userLogin"] = model.UserName;
                Session["unitLogin"] = model.UnitName;
                await OnLogin();

                return(Redirect("/"));

            //return RedirectToAction("OuthenGoogle", new { ReturnUrl = returnUrl }); bat authen qrcode

            case SignInStatus.LockedOut:
                ModelState.AddModelError("", "Tài khoản bị khóa!");
                return(View(model));

            case SignInStatus.RequiresTwoFactorAuthentication:
                return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl }));

            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Sai thông tin tài khoản.");
                return(View(model));
            }
        }
        //public JsonResult GetListUnits(byte? IPS, int? limit, int? offset)
        //{
        //    try
        //    {
        //        UnitsDAL unitsCtrl = new UnitsDAL();
        //        var lstResult = new List<Units>();
        //        if (IPS == 1)
        //        {
        //            if (SysBaseInfor.GetCurrentUserName() == SysBaseInfor.SuperAdmin)
        //            {
        //                lstResult = unitsCtrl.GetListItems();
        //            }
        //            else
        //            {
        //               lstResult.Add(unitsCtrl.GetItemByID("Id",SysBaseInfor.GetCurrentUnitId().ToInt32()));
        //            }
        //            return Json(lstResult);
        //        }
        //        else
        //        {
        //            lstResult = unitsCtrl.GetListItemPagination("CreatedAt", "DESC", offset.GetValueOrDefault(), limit.GetValueOrDefault());
        //            return Json(new { total = unitsCtrl.GetTotalUnit(), rows = lstResult });
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        return Json(ex.Message);
        //    }
        //}
        public ActionResult ShowDetailUnit(int IdUnit)
        {
            try
            {
                UnitsDAL unitsCtrl = new UnitsDAL();

                var result = new Units();
                if (IdUnit > 0)
                {
                    result = unitsCtrl.GetItemByID("Id", IdUnit);
                }

                return(PartialView(urlView + "_DetailUnit.cshtml", result));
            }
            catch (Exception ex)
            {
                return(PartialView(urlView + "_DetailUnit.cshtml", ex));
            }
        }
        public async Task <bool> OnLogin()
        {
            string   userNameForauthen = Session["userLogin"].ToString();
            string   unitNameForauthen = Session["unitLogin"].ToString();
            UnitsDAL unitCtrl          = new UnitsDAL();
            Units    unitObj           = unitCtrl.GetUnitByCode(unitNameForauthen);

            try
            {
                var             userManager = System.Web.HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();
                var             roleManager = System.Web.HttpContext.Current.GetOwinContext().Get <ApplicationRoleManager>();
                ApplicationUser user        = userManager.FindByName(userNameForauthen);


                if (user != null)
                {
                    SysBaseInfor.SetCurrentUserName(user.UserName);
                    SysBaseInfor.SetCurrentUserDisplayName(user.DisplayName);
                    SysBaseInfor.SetCurrentUserId(user.Id);
                    SysBaseInfor.SetCurrentUserType(user.Type);
                    SysBaseInfor.SetCurrentUserTypeInfo(user.TypeInfo);
                    SysBaseInfor.SetIdNguoiDung(user.TypeInfo.ToString());

                    SysBaseInfor.SetCurrentUnitId(unitObj.Id);
                    SysBaseInfor.SetCurrentUnitCode(unitObj.Code);
                    SysBaseInfor.SetCurrentUnitName(unitObj.Name);
                    SysBaseInfor.SetCurrentMediaURL(unitObj.MediaUrl);
                    SysBaseInfor.SetCurrentUnitLogoUrl(unitObj.LogoUrl);

                    var lstRoleNames = userManager.GetRoles(user.Id);
                    if (lstRoleNames.Count > 0)
                    {
                        SYS_MENU_ROLE_CTRL smrCtrl = new SYS_MENU_ROLE_CTRL();
                        var tmpLstRoles            = new List <SYS_MENU_ROLE>();
                        foreach (string tmpRoleName in lstRoleNames)
                        {
                            if (!string.IsNullOrEmpty(tmpRoleName))
                            {
                                var tmpRole  = roleManager.FindByName(tmpRoleName);
                                var lstRoles = smrCtrl.GetLstSysMenuRoleWithView(tmpRole.Id);
                                foreach (SYS_MENU_ROLE tmpSmr in lstRoles)
                                {
                                    if (tmpSmr.ID > 0)
                                    {
                                        if (tmpLstRoles.All(r => r.ID_SYS_MENU != tmpSmr.ID_SYS_MENU))
                                        {
                                            tmpLstRoles.Add(tmpSmr);
                                        }
                                        else
                                        {
                                            var index         = tmpLstRoles.FindIndex(r => r.ID_SYS_MENU == tmpSmr.ID_SYS_MENU);
                                            var tmpAccessOld  = tmpLstRoles[index].ACCESS_RIGHT;
                                            var tmpAccessNew  = tmpSmr.ACCESS_RIGHT;
                                            var tmpAccessJoin = "";
                                            if (tmpAccessOld != tmpAccessNew)
                                            {
                                                for (int i = 0; i < tmpAccessOld.Length; i++)
                                                {
                                                    tmpAccessJoin += (tmpAccessOld[i] > tmpAccessNew[i]) ? tmpAccessOld[i] : tmpAccessNew[i];
                                                }
                                                tmpLstRoles[index].ACCESS_RIGHT = tmpAccessJoin;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        var jsonLstRoles = JsonConvert.SerializeObject(tmpLstRoles);
                        SysBaseInfor.SetCurrentUserListMenu(jsonLstRoles);
                    }

                    var sign = await SignInHelper.SignInOrTwoFactor(user, true);
                }
            }
            catch (Exception ex)
            {
                //AuthenticationManager.SignOut();
                //Session.Abandon();
                //ModelState.AddModelError("", ex);
                //return View(model);
                return(false);
            }
            return(true);
        }