Ejemplo n.º 1
0
        protected async Task LoadSettings(string prefix)
        {
            try
            {
                var result = (await apiClient.GetTenantSettings()).Where(i => i.Key.ToString().StartsWith(prefix)).ToDictionary(i => i.Key, i => i);

                foreach (var def in TenantSettingValues.Default.Where(i => i.Key.ToString().StartsWith(prefix)))
                {
                    if (!result.ContainsKey(def.Key))
                    {
                        var entity = new TenantSetting()
                        {
                            Key = def.Key, Type = def.Value.Item2, Value = def.Value.Item1
                        };
                        result.Add(def.Key, entity);
                        apiClient.AddEntity(entity);
                    }
                }

                settings = result;
            }
            catch (Exception ex)
            {
                matToaster.Add(ex.GetBaseException().Message, MatToastType.Danger, L["Operation Failed"]);
            }
        }
        public IActionResult Patch(string id, [FromBody] JsonPatchDocument <TenSetting> tenantSettingPatch)
        {
            try
            {
                if (Guid.TryParse(id, out Guid parsedId))
                {
                    //var userId = User.FindFirstValue("sub");

                    TenantSetting tenantSetting = _unitOfWork.TenantSettings.Get(parsedId);

                    TenSetting tenSetting = _mapper.Map <TenSetting>(tenantSetting);

                    tenantSettingPatch.ApplyTo(tenSetting);

                    _mapper.Map(tenSetting, tenantSetting);

                    _unitOfWork.Complete();

                    return(CreatedAtRoute("Get", new { id = _mapper.Map <TenSetting>(tenantSetting).Id }, _mapper.Map <TenSetting>(tenantSetting)));
                }
            }
            catch (Exception e)
            {
                string message = e.Message;
            }

            return(BadRequest());
        }
        public void Process(AttachArgs args)
        {
            MediaItem mi = args.MediaItem;

            try
            {
                CrunchOptions crunchOptions;
                if (mi != null)
                {
                    crunchOptions = new CrunchOptions();
                    FillSetting   objFillSetting    = new FillSetting();
                    TenantSetting objTennantSetting = objFillSetting.getSetting(mi.MediaPath, mi.Database.Name, mi.InnerItem.Language.ToString());
                    if (mi.Size > objTennantSetting.MinimumKBSize && mi.Size < objTennantSetting.MaxImageSize)
                    {
                        crunchOptions.APIKey    = objTennantSetting.ApiKey;
                        crunchOptions.APISecret = objTennantSetting.ApiSecret;
                        crunchOptions.fullname  = mi.Name + "." + mi.Extension;
                        crunchOptions.IsEnabled = objTennantSetting.IsEnabled;
                        crunchOptions.wait      = true;
                        crunchOptions.lossy     = objTennantSetting.Lossy;
                        crunchOptions.dev       = objTennantSetting.IsDev;
                        crunchOptions.enhance   = objTennantSetting.Enhance;
                        CrunchImage.ProcessMediaItem(mi, crunchOptions);
                    }
                    else
                    {
                        Log.Info(string.Format("Image Size is {0} {1}", mi.Size, ",KB which is not fit in minimum & maximum size defined in setting"), this);
                    }
                }
            }
            catch (System.Exception exception)
            {
                Log.Error(string.Format("Could not shrink item {0}", mi.InnerItem.Paths.FullPath), exception, this);
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> CreateSetting([DataSourceRequest] DataSourceRequest request, [FromQuery] int tenantId)
        {
            var model = new TenantSetting();

            if (ModelState.IsValid)
            {
                await this.TryUpdateModelAsync <TenantSettingViewModel, TenantSetting>(model);

                model.TenantId = tenantId;
                db.TenantSettings.Add(model);

                await db.SaveChangesAsync();
            }

            return(Json(await new[] { model.ToViewModel <TenantSetting, TenantSettingViewModel>() }.ToDataSourceResultAsync(request, ModelState)));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Index(TenantSetting tenantSetting)
        {
            if (ModelState.IsValid)
            {
                var obj = new TenantSettingDto {
                    BaseUrl = tenantSetting.BaseUrl, Password = tenantSetting.Password, User = tenantSetting.User
                };
                var response = await _apiClient.HttpClient.PostAsJsonAsync("TenantSetting/SaveSetting", obj);

                if (response.IsSuccessStatusCode)
                {
                    _toastNotification.AddSuccessToastMessage("Success!");
                    return(RedirectToAction(nameof(Index)));
                }
            }
            return(View());
        }
Ejemplo n.º 6
0
        protected virtual TenantSetting GetSetting(int tenantId, SettingTemplateMarkup setting, bool addIfMissing)
        {
            var retVal = db.TenantSettings.FirstOrDefault(n =>
                                                          n.TenantId == tenantId && n.SettingsKey == setting.ParamName);

            if (retVal == null && addIfMissing)
            {
                retVal = new TenantSetting
                {
                    TenantId      = tenantId,
                    SettingsKey   = setting.ParamName,
                    JsonSetting   = setting.IsJsonSetting,
                    SettingsValue = setting.Value
                };
                db.TenantSettings.Add(retVal);
            }

            return(retVal);
        }
 public void Process(UploadArgs args)
 {
     Assert.ArgumentNotNull((object)args, "args");
     if (args != null && args.UploadedItems != null && args.UploadedItems[0] != null)
     {
         CrunchOptions crunchOptions;
         FillSetting   objFillSetting    = new FillSetting();
         MediaItem     mi                = args.UploadedItems[0];
         TenantSetting objTennantSetting = objFillSetting.getSetting(mi.MediaPath, mi.Database.Name, mi.InnerItem.Language.ToString());
         crunchOptions           = new CrunchOptions();
         crunchOptions.APIKey    = objTennantSetting.ApiKey;
         crunchOptions.APISecret = objTennantSetting.ApiSecret;
         crunchOptions.IsEnabled = objTennantSetting.IsEnabled;
         crunchOptions.wait      = true;
         crunchOptions.lossy     = objTennantSetting.Lossy;
         crunchOptions.dev       = objTennantSetting.IsDev;
         crunchOptions.enhance   = objTennantSetting.Enhance;
         foreach (Item uploadedItem in args.UploadedItems)
         {
             try
             {
                 mi = new MediaItem(uploadedItem);
                 //checking maximum & minimum size condition defined for the tenant
                 if (mi != null && mi.Size > objTennantSetting.MinimumKBSize && mi.Size < objTennantSetting.MaxImageSize)
                 {
                     crunchOptions.fullname = mi.Name + "." + mi.Extension;
                     //As of now API is based out of post approach
                     CrunchImage.ProcessMediaItem(mi, crunchOptions);
                 }
                 else
                 {
                     Log.Info(string.Format("Image Size is {0} {1}", mi.Size, ",KB which is not fit in minimum & maximum size defined in setting"), this);
                 }
             }
             catch (System.Exception exception)
             {
                 Log.Error(string.Format("Could not shrink item {0}", uploadedItem.Paths.FullPath), exception, this);
             }
         }
     }
 }
Ejemplo n.º 8
0
        public void UpdateSetting(TenantSetting setting)
        {
            string settingsFilePath = Path.Combine(HostingEnvironment.ContentRootPath, "xmlfiles/TenantSettings.xml");

            XmlDocument doc = new XmlDocument();

            doc.Load(settingsFilePath);

            var baseUrlNode = doc.SelectSingleNode("/TenantSetting/BaseUrl");

            baseUrlNode.InnerText = setting.BaseUrl;

            var userNode = doc.SelectSingleNode("/TenantSetting/User");

            userNode.InnerText = setting.User;

            var passwordNode = doc.SelectSingleNode("/TenantSetting/Password");

            passwordNode.InnerText = setting.Password;

            doc.Save(settingsFilePath);
        }
Ejemplo n.º 9
0
        public static bool addMember(Member member, Guid tenantId)
        {
            bool isV = false;

            try
            {
                DateTime now = DateTime.Now;
                member.createTime = now;
                member.updateTime = now;
                member.memberCode = getMemberCode();
                member.password   = Utils.ConverToMD5(member.password);
                int    memberId = DataManager.memberDao.addMember(member);
                Tenant tenant   = DataManager.tenantDao.getTenant(tenantId);
                Member admin    = DataManager.memberDao.getMember(tenant.createdMemberId);

                //判斷是否需要寄送mailNotice
                TenantSetting setting = DataManager.tenantDao.getTenantSetting(tenantId, "MemCheckType");
                if (setting != null)
                {
                    TenantSetting   mailInfo = null;
                    MailInfo        mail     = null;
                    string          type     = null;
                    List <MailSend> sendList = new List <MailSend>();
                    switch (setting.content)
                    {
                    case "Auto":
                        mailInfo = DataManager.tenantDao.getTenantSetting(tenantId, "MemPassMailInfo");
                        mail     = JsonConvert.DeserializeObject <MailInfo>(mailInfo.content);
                        type     = "會員自動審核";
                        break;

                    case "Manual":
                        mailInfo = DataManager.tenantDao.getTenantSetting(tenantId, "MemReviewMailInfo");
                        mail     = JsonConvert.DeserializeObject <MailInfo>(mailInfo.content);
                        type     = "會員審核提醒";
                        break;
                    }
                    if (mail != null)
                    {
                        MailSend mailSend = new MailSend
                        {
                            memberId   = memberId,
                            tenantId   = tenantId.ToString(),
                            mail       = member.email,
                            tenantName = tenant.tenantName,
                            CC         = admin.email
                        };
                        sendList.Add(mailSend);
                        Debug.WriteLine("asdsada" + mail.content.Replace("\n", "</br>"));
                        MailNotice mailNotice = new MailNotice
                        {
                            tenantId   = tenantId,
                            type       = type,
                            title      = mail.subject,
                            content    = mail.content.Replace("\n", "</br>"),
                            sendTo     = JsonConvert.SerializeObject(sendList),
                            isAuto     = true,
                            dtSend     = DateTime.Now.AddMinutes(10),
                            isSend     = false,
                            status     = "正常",
                            createTime = DateTime.Now,
                            creator    = memberId
                        };
                        DataManager.mailNoticeDao.add(mailNotice);
                    }
                }

                TenantMember tenantMember = new TenantMember();
                tenantMember.tenantId   = tenantId;
                tenantMember.memberId   = memberId;
                tenantMember.isBlockade = false;
                tenantMember.status     = "待審核";
                tenantMember.creator    = member.memberId;
                tenantMember.createTime = now;
                tenantMember.updateTime = now;
                DataManager.tenantMemberDao.addTenantMember(tenantMember);

                isV = true;
            }
            catch (Exception e)
            {
                Debug.WriteLine("[CMemberManager-addMember] error:" + e.StackTrace);
            }
            return(isV);
        }
Ejemplo n.º 10
0
 protected virtual void RevokeSetting(int tenantId, TenantSetting setting)
 {
 }
Ejemplo n.º 11
0
        private JsonResult DoUpload(string database, string destinationUrl)
        {
            if (string.IsNullOrEmpty(destinationUrl))
            {
                destinationUrl = "/sitecore/media library";
            }
            List <UploadedFileItem> uploadedFileItemList = new List <UploadedFileItem>();
            SitecoreViewModelResult result = new SitecoreViewModelResult();

            if (!ImageCrunchController.ValidateDestination(database, destinationUrl, result))
            {
                return((JsonResult)result);
            }
            objFillSetting = new FillSetting();
            crunchOptions  = new CrunchOptions();
            foreach (string file1 in (NameObjectCollectionBase)this.Request.Files)
            {
                HttpPostedFileBase file2 = this.Request.Files[file1];
                if (file2 != null)
                {
                    string withoutExtension = Path.GetFileNameWithoutExtension(file2.FileName);
                    if (!string.IsNullOrEmpty(this.Request.Form["name"]))
                    {
                        withoutExtension = this.Request.Form["name"];
                    }
                    string str   = ItemUtil.ProposeValidItemName(withoutExtension, "default");
                    string empty = string.Empty;
                    if (!string.IsNullOrEmpty(this.Request.Form["alternate"]))
                    {
                        empty = this.Request.Form["alternate"];
                    }
                    Database database1 = Context.ContentDatabase;
                    if (!string.IsNullOrEmpty(database))
                    {
                        database1 = Factory.GetDatabase(database);
                    }
                    if (database1 == null)
                    {
                        database1 = Context.ContentDatabase;
                    }
                    MediaCreatorOptions options1 = new MediaCreatorOptions()
                    {
                        AlternateText = empty,
                        Database      = database1,
                        FileBased     = Settings.Media.UploadAsFiles,
                        IncludeExtensionInItemName = Settings.Media.IncludeExtensionsInItemNames,
                        OverwriteExisting          = false,
                        Language    = LanguageManager.DefaultLanguage,
                        Versioned   = Settings.Media.UploadAsVersionableByDefault,
                        Destination = this.ParseDestinationUrl(destinationUrl) + str
                    };
                    if (!ImageCrunchController.ValidateFile(file2, result))
                    {
                        return((JsonResult)result);
                    }
                    Item fromStream = MediaManager.Creator.CreateFromStream(file2.InputStream, "/upload/" + file2.FileName, options1);
                    if (!string.IsNullOrEmpty(this.Request.Form["description"]))
                    {
                        fromStream.Editing.BeginEdit();
                        fromStream["Description"] = this.Request.Form["description"];
                        fromStream.Editing.EndEdit();
                    }
                    MediaItem mediaItem = new MediaItem(fromStream);
                    ///Code to Shrunk the Media Item begin
                    objTennantSetting       = objFillSetting.getSetting(mediaItem.MediaPath, mediaItem.Database.Name, mediaItem.InnerItem.Language.ToString());
                    crunchOptions.APIKey    = objTennantSetting.ApiKey;
                    crunchOptions.APISecret = objTennantSetting.ApiSecret;
                    crunchOptions.IsEnabled = objTennantSetting.IsEnabled;
                    crunchOptions.wait      = true;
                    crunchOptions.lossy     = objTennantSetting.Lossy;
                    crunchOptions.dev       = objTennantSetting.IsDev;
                    crunchOptions.enhance   = objTennantSetting.Enhance;
                    try
                    {
                        //checking maximum & minimum size condition defined for the tenant
                        if (mediaItem != null && mediaItem.Size > objTennantSetting.MinimumKBSize && mediaItem.Size < objTennantSetting.MaxImageSize)
                        {
                            crunchOptions.fullname = mediaItem.Name + "." + mediaItem.Extension;
                            //As of now API is based out of post approach
                            CrunchImage.ProcessMediaItem(mediaItem, crunchOptions);
                        }
                        else
                        {
                            Log.Info(string.Format("Image Size is {0} {1}", mediaItem.Size, ",KB which is not fit in minimum & maximum size defined in setting"), this);
                        }
                    }
                    catch (System.Exception exception)
                    {
                        Log.Error(string.Format("Could not shrink item {0}", mediaItem.InnerItem.Paths.FullPath), exception, this);
                    }
                    ///Code to shrunk media item end
                    MediaUrlOptions options2 = new MediaUrlOptions(130, 130, false)
                    {
                        Thumbnail       = true,
                        BackgroundColor = Color.Transparent,
                        Database        = mediaItem.Database
                    };
                    string mediaUrl = MediaManager.GetMediaUrl(mediaItem, options2);
                    uploadedFileItemList.Add(new UploadedFileItem(fromStream.Name, fromStream.ID.ToString(), fromStream.ID.ToShortID().ToString(), mediaUrl));
                }
            }
            ((dynamic)result.Result).uploadedFileItems = uploadedFileItemList;
            return((JsonResult)result);
        }
Ejemplo n.º 12
0
 public JsonResult ViewTenantSetting([FromBody] TenantSetting tenantSetting)
 {
     _tenantSettingService.UpdateSetting(tenantSetting);
     return(new JsonResult("Saved"));
 }
Ejemplo n.º 13
0
        public TenantSetting getSetting(string path = "", string database = "master", string language = "en")
        {
            TenantSetting objSetting = null;
            ///sitecore/system/Modules/ImageCore/DefaultTenant
            //InSitecoreSitecore.Common.Functions.GetDatabase()
            Item settingItm = InSitecoreSitecore.Common.Functions.GetItemPath(ImageCorePath, database, language);

            settingItm = GetSettingItem(settingItm, path);
            InSitecoreSitecore.Common.Functions.ClearSitecoreCacheofItem(database, settingItm.ID);
            if (settingItm != null)
            {
                objSetting = new TenantSetting();
                string strDev = settingItm.Fields["IsDev"].Value;
                if (strDev != null && strDev.Length > 0)
                {
                    objSetting.IsDev = strDev.Equals("1", StringComparison.InvariantCultureIgnoreCase);
                }
                else
                {
                    objSetting.IsDev = false;
                }
                string Lossy = settingItm.Fields["Lossy"].Value;
                if (Lossy != null && Lossy.Length > 0)
                {
                    objSetting.Lossy = Lossy.Equals("1", StringComparison.InvariantCultureIgnoreCase);
                }
                else
                {
                    objSetting.Lossy = true;
                }
                string Enhance = settingItm.Fields["Enhance"].Value;
                if (Enhance != null && Enhance.Length > 0)
                {
                    objSetting.Enhance = Enhance.Equals("1", StringComparison.InvariantCultureIgnoreCase);
                }
                else
                {
                    objSetting.Enhance = false;
                }
                string isEnabled = settingItm.Fields["IsEnabled"].Value;
                if (isEnabled != null && isEnabled.Length > 0)
                {
                    objSetting.IsEnabled = isEnabled.Equals("1", StringComparison.InvariantCultureIgnoreCase);
                }
                else
                {
                    objSetting.IsEnabled = false;
                }

                string minimumKBSize = settingItm.Fields["MinimumImageSizeKB"].Value;
                if (minimumKBSize != null && minimumKBSize.Length > 0)
                {
                    //Converting into Bytes
                    objSetting.MinimumKBSize = Convert.ToDouble(minimumKBSize) * 1000;
                }
                else
                {
                    objSetting.MinimumKBSize = (50 * 1000);
                }

                string maxImageSizeKB = settingItm.Fields["MaxImageSizeKB"].Value;
                if (maxImageSizeKB != null && maxImageSizeKB.Length > 0)
                {
                    //Converting into Bytes
                    objSetting.MaxImageSize = Convert.ToDouble(maxImageSizeKB) * 1000;
                }
                else
                {
                    objSetting.MaxImageSize = (50 * 1000);
                }

                string krakenApiKey = settingItm.Fields["KrakenApiKey"].Value;
                if (krakenApiKey != null && krakenApiKey.Length > 0)
                {
                    objSetting.ApiKey = krakenApiKey;
                }
                else
                {
                    objSetting.ApiKey = "";
                }

                string krakenApiSecret = settingItm.Fields["KrakenApiSecret"].Value;
                if (krakenApiSecret != null && krakenApiSecret.Length > 0)
                {
                    objSetting.ApiSecret = krakenApiSecret;
                }
                else
                {
                    objSetting.ApiSecret = "";
                }

                isInitialised = true;
            }

            return(objSetting);
        }