Beispiel #1
0
        public ActionResult Setting(SitesModels item, string[] domains, string webType, SiteMailSettingModel mailSetting)
        {
            ViewBag.SiteID = item.Id;
            if (!Utility.CheckIsLogin())
            {
                Response.Redirect(Url.Action("Login", "Home"));
            }
            AppendViewBags();
            ViewBag.Langs     = WorkV3.Models.DataAccess.SiteLangMenuDAO.GetDatas(item.Id);
            ViewBag.UploadUrl = WorkV3.Golbal.UpdFileInfo.GetVPathBySiteID(item.Id, "Header");
            if (webType == "Indep")
            {
                item.ParentID = (long?)null;
            }
            if (!string.IsNullOrEmpty(item.Logo))
            {
                // 新上傳的圖片
                HttpPostedFileBase postedFile              = Request.Files["fLogo"];
                string             postedFileBase64        = Request.Form["fLogoBase64"];
                string             postedFileBase64_Resize = Request.Form["fLogoBase64_Resize"];
                if (!string.IsNullOrEmpty(postedFileBase64))
                {
                    string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesBySiteID(postedFile, item.Id, "Header", postedFileBase64, postedFileBase64_Resize);
                    item.Logo = saveName;
                }
                else
                {
                    ImageModel imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <ImageModel>(item.Logo);
                    if (!string.IsNullOrEmpty(imgModel.Img))
                    {
                        item.Logo = System.IO.Path.GetFileName(imgModel.Img);
                    }
                    else
                    {
                        if (postedFile == null || postedFile.ContentLength == 0)
                        {
                            item.Logo = "";
                        }
                        else
                        {
                            string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesBySiteID(postedFile, item.Id, "Header", postedFileBase64, postedFileBase64_Resize);
                            item.Logo = saveName;
                        }
                    }
                }
            }
            if (!string.IsNullOrEmpty(item.Favicon))
            {
                // 新上傳的圖片
                HttpPostedFileBase postedFile              = Request.Files["fFavicon"];
                string             postedFileBase64        = Request.Form["fFaviconBase64"];
                string             postedFileBase64_Resize = Request.Form["fFaviconBase64_Resize"];
                if (!string.IsNullOrEmpty(postedFileBase64))
                {
                    string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesBySiteID(postedFile, item.Id, "Header", postedFileBase64, postedFileBase64_Resize);
                    item.Favicon = saveName;
                }
                else
                {
                    ImageModel imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <ImageModel>(item.Favicon);
                    if (!string.IsNullOrEmpty(imgModel.Img))
                    {
                        item.Favicon = System.IO.Path.GetFileName(imgModel.Img);
                    }
                    else
                    {
                        if (postedFile == null || postedFile.ContentLength == 0)
                        {
                            item.Favicon = "";
                        }
                        else
                        {
                            string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesBySiteID(postedFile, item.Id, "Header", postedFileBase64, postedFileBase64_Resize);
                            item.Favicon = saveName;
                        }
                    }
                }
            }
            if (!string.IsNullOrEmpty(item.Logoshrink))
            {
                // 新上傳的圖片
                HttpPostedFileBase postedFile              = Request.Files["fLogoshrink"];
                string             postedFileBase64        = Request.Form["fLogoshrinkBase64"];
                string             postedFileBase64_Resize = Request.Form["fLogoshrinkBase64_Resize"];
                if (!string.IsNullOrEmpty(postedFileBase64))
                {
                    string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesBySiteID(postedFile, item.Id, "Header", postedFileBase64, postedFileBase64_Resize);
                    item.Logoshrink = saveName;
                }
                else
                {
                    ImageModel imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <ImageModel>(item.Logoshrink);
                    if (!string.IsNullOrEmpty(imgModel.Img))
                    {
                        item.Logoshrink = System.IO.Path.GetFileName(imgModel.Img);
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(imgModel.Img))
                        {
                            item.Logoshrink = System.IO.Path.GetFileName(imgModel.Img);
                        }
                        else
                        {
                            if (postedFile == null || postedFile.ContentLength == 0)
                            {
                                item.Logoshrink = "";
                            }
                            else
                            {
                                string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesBySiteID(postedFile, item.Id, "Header", postedFileBase64, postedFileBase64_Resize);
                                item.Logoshrink = saveName;
                            }
                        }
                    }
                }
            }
            if (!string.IsNullOrEmpty(item.LogoMobile))
            {
                // 新上傳的圖片
                HttpPostedFileBase postedFile              = Request.Files["fLogoMobile"];
                string             postedFileBase64        = Request.Form["fLogoMobileBase64"];
                string             postedFileBase64_Resize = Request.Form["fLogoMobileBase64_Resize"];
                if (!string.IsNullOrEmpty(postedFileBase64))
                {
                    string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesBySiteID(postedFile, item.Id, "Header", postedFileBase64, postedFileBase64_Resize);
                    item.LogoMobile = saveName;
                }
                else
                {
                    ImageModel imgModel = Newtonsoft.Json.JsonConvert.DeserializeObject <ImageModel>(item.LogoMobile);
                    if (!string.IsNullOrEmpty(imgModel.Img))
                    {
                        item.LogoMobile = System.IO.Path.GetFileName(imgModel.Img);
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(imgModel.Img))
                        {
                            item.LogoMobile = System.IO.Path.GetFileName(imgModel.Img);
                        }
                        else
                        {
                            if (postedFile == null || postedFile.ContentLength == 0)
                            {
                                item.LogoMobile = "";
                            }
                            else
                            {
                                string saveName = WorkV3.Golbal.UpdFileInfo.SaveFilesBySiteID(postedFile, item.Id, "Header", postedFileBase64, postedFileBase64_Resize);
                                item.LogoMobile = saveName;
                            }
                        }
                    }
                }
            }
            List <ViewModels.SiteDomain> DomainList = new List <ViewModels.SiteDomain>();
            long domainIndex = 0;

            if (domains != null)
            {
                foreach (string domain in domains)
                {
                    if (!string.IsNullOrEmpty(domain))
                    {
                        domainIndex++;
                        ViewModels.SiteDomain domainModel = new ViewModels.SiteDomain()
                        {
                            ID     = domainIndex,
                            Domain = domain
                        };
                        DomainList.Add(domainModel);
                    }
                }
            }
            item.Domin = Newtonsoft.Json.JsonConvert.SerializeObject(DomainList);

            if (siteMailSettingRepository.GetItem(mailSetting.SiteID, "SiteID") == null)
            {
                siteMailSettingRepository.CreateItem(mailSetting);
            }
            else
            {
                siteMailSettingRepository.UpdateItemExcept(mailSetting, new string[] { }, "SiteID");
            }

            MTSRepository.SetMailFromName(item.Title);//Joe 20190923設定寄件人為後台的網站設定之網站名稱

            WorkV3.Models.DataAccess.SitesDAO.SetItem(item);
            ViewBag.Exit = true;
            return(View(item));
        }
Beispiel #2
0
        public ActionResult Edit(SitesModels item, string[] domains, string webType)
        {
            if (!Utility.CheckIsLogin())
            {
                Response.Redirect(Url.Action("Login", "Home"));
            }
            bool IsNeedCreateBaseBackendMenus = false, IsNeedCreateHomePageInfo = false;

            AppendViewBags();
            if (item.Id == 0)
            {
                item.Id = WorkLib.GetItem.NewSN();
                IsNeedCreateBaseBackendMenus = true;
                IsNeedCreateHomePageInfo     = true;
            }
            var orginalSiteInfo = WorkV3.Models.DataAccess.SitesDAO.GetInfo(item.Id);

            if (orginalSiteInfo != null)
            {
                item.Descriptions     = orginalSiteInfo.Descriptions;
                item.Author           = orginalSiteInfo.Author;
                item.Copyright        = orginalSiteInfo.Copyright;
                item.ICO              = orginalSiteInfo.ICO;
                item.Logo             = orginalSiteInfo.Logo;
                item.FooterCont       = orginalSiteInfo.FooterCont;
                item.GAInfo           = orginalSiteInfo.GAInfo;
                item.Logoshrink       = orginalSiteInfo.Logoshrink;
                item.socialSetting    = orginalSiteInfo.socialSetting;
                item.LogoMobile       = orginalSiteInfo.LogoMobile;
                item.HeaderCont       = orginalSiteInfo.HeaderCont;
                item.HeaderCustomized = orginalSiteInfo.HeaderCustomized;
                item.FooterCustomized = orginalSiteInfo.FooterCustomized;
                item.IsLang           = orginalSiteInfo.IsLang;
                item.IsSearchEnabled  = orginalSiteInfo.IsSearchEnabled;
                item.IsPathBread      = orginalSiteInfo.IsPathBread;
            }
            if (webType == "Indep")
            {
                item.ParentID = (long?)null;
            }
            List <ViewModels.SiteDomain> DomainList = new List <ViewModels.SiteDomain>();
            long domainIndex    = 0;

            if (domains != null)
            {
                foreach (string domain in domains)
                {
                    if (!string.IsNullOrEmpty(domain))
                    {
                        domainIndex++;
                        ViewModels.SiteDomain domainModel = new ViewModels.SiteDomain()
                        {
                            ID     = domainIndex,
                            Domain = domain
                        };
                        DomainList.Add(domainModel);
                    }
                }
            }
            item.Domin = Newtonsoft.Json.JsonConvert.SerializeObject(DomainList);

            WorkV3.Models.DataAccess.SitesDAO.SetItem(item);
            if (IsNeedCreateBaseBackendMenus)
            {
                WorkV3.Models.DataAccess.SitesDAO.AddInitBackendStructure(item.Id, !item.ParentID.HasValue);
            }
            if (IsNeedCreateHomePageInfo)
            {
                WorkV3.Models.DataAccess.SitesDAO.AddInitHomePage(item.Id);
                WorkV3.Models.DataAccess.SitesDAO.AddInitSystemPages(item.Id);
            }
            ViewBag.Exit = true;

            return(View(item));
        }
Beispiel #3
0
        public ActionResult Copy(SitesModels item, string[] domains, string webType, long SourceID)
        {
            if (!Utility.CheckIsLogin())
            {
                Response.Redirect(Url.Action("Login", "Home"));
            }
            AppendViewBags();
            ViewBag.IsCopy = true;
            if (item.Id == 0)
            {
                item.Id = WorkLib.GetItem.NewSN();
            }
            if (webType == "Indep")
            {
                item.ParentID = (long?)null;
            }
            List <ViewModels.SiteDomain> DomainList = new List <ViewModels.SiteDomain>();
            long domainIndex = 0;

            if (domains != null)
            {
                foreach (string domain in domains)
                {
                    if (!string.IsNullOrEmpty(domain))
                    {
                        domainIndex++;
                        ViewModels.SiteDomain domainModel = new ViewModels.SiteDomain()
                        {
                            ID     = domainIndex,
                            Domain = domain
                        };
                        DomainList.Add(domainModel);
                    }
                }
                item.Domin = Newtonsoft.Json.JsonConvert.SerializeObject(DomainList);
            }

            using (var scope = new TransactionScope())
            {
                try
                {
                    if (!WorkV3.Models.DataAccess.SitesDAO.CopyStructure(SourceID, item.Id))
                    {
                        throw new Exception("結構複製失敗");
                    }

                    if (!WorkV3.Models.DataAccess.SitesDAO.CopyBackendStructure(SourceID, item.Id))
                    {
                        throw new Exception("後台選單結構複製失敗");
                    }

                    SitesModels source_item       = WorkV3.Models.DataAccess.SitesDAO.GetInfo(SourceID);
                    string      absFileSourcePath = Server.MapPath("~/Websites/" + source_item.SN);
                    string      absFileTargetPath = Server.MapPath("~/Websites/" + item.SN);
                    WorkV3.Models.DataAccess.SitesDAO.SetItem(item);
                    WorkV3.Models.DataAccess.SitesDAO.CopyWebsiteFiles(absFileSourcePath, absFileTargetPath);

                    scope.Complete();
                }
                catch (Exception ex)
                {
                    ViewBag.Message = ex.Message;
                }
            }

            ViewBag.Exit = true;
            return(View("Edit", item));
        }