示例#1
0
        private string GetNavigationValue(bool ignoreCache)
        {
            CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString());

            string CacheKey = string.Format("{0}_{1}_{2}_{3}", NavigationID, CultureHandler.GetCurrentNeutralLanguageCode().ToLower(), udc.UserRole.ToLower(), (int)NavType);
            string navXml   = Cache[CacheKey] as string;

            if (navXml == null || ignoreCache)
            {
                navXml = "<Tree/>";
                var Navi = csb.hisp_Navigation_GetPreChache(NavigationID.ToGuid(), CultureHandler.GetCurrentNeutralLanguageCode(), udc.UserRole).FirstOrDefault();
                if (Navi != null)
                {
                    navXml = Navi.NPC_PreCacheXML;
                }
                navXml = DataAccess.Business.Navigation.TranformXML(navXml, NavType);
                Cache.Insert(CacheKey, navXml);
            }
            UserDataInfo udi = Cache["UID_" + udc.UserID] as UserDataInfo;

            if (udi == null || ignoreCache)
            {
                udi = new UserDataInfo(udc.UserID);
                Cache.Insert("UID_" + udc.UserID, udi, null, DateTime.Now.AddMinutes(5), System.Web.Caching.Cache.NoSlidingExpiration);
            }
            navXml = navXml.Replace("##NEW_MAIL_COUNT##", udi.UnreadMessagesCount.ToString()).Replace("##FRIEND_REQUEST_COUNT##", udi.FriendRequestCount.ToString()).Replace("##ALERT_COUNT##", udi.AlertCount.ToString());
            navXml = navXml.Replace("##CURRENT_PAGE##", Server.UrlEncode(Request.Url.PathAndQuery));
            return(navXml);
        }
示例#2
0
 protected void Application_BeginRequest(object sender, EventArgs e)
 {
     if (Request.RawUrl.Contains(".aspx"))
     {
         string preferredCulture = null;
         if (HttpContext.Current.Profile != null)
         {
             preferredCulture = ((UserProfile)HttpContext.Current.Profile).PrefferedCulture;
         }
         string currentCulture = CultureHandler.SetCurrentCulture(preferredCulture);
         if (HttpContext.Current.Profile != null && ((UserProfile)HttpContext.Current.Profile).PrefferedCulture.ToLower() != currentCulture.ToLower())
         {
             ((UserProfile)HttpContext.Current.Profile).PrefferedCulture = currentCulture;
             ((UserProfile)HttpContext.Current.Profile).Save();
         }
     }
     if (Request.HttpMethod == "GET")
     {
         if (Request.AppRelativeCurrentExecutionFilePath.EndsWith(".aspx") &&
             !Request.AppRelativeCurrentExecutionFilePath.ToLower().Contains("formshieldhttphandler.aspx") &&
             !Request.AppRelativeCurrentExecutionFilePath.ToLower().Contains("telerik.web.ui.dialoghandler.aspx") &&
             !Request.AppRelativeCurrentExecutionFilePath.ToLower().Contains("cropimage.aspx") &&
             !Request.AppRelativeCurrentExecutionFilePath.ToLower().Contains("wizard.aspx") &&
             !Request.AppRelativeCurrentExecutionFilePath.ToLower().Contains("widgetsettings.aspx") &&
             !Request.AppRelativeCurrentExecutionFilePath.ToLower().Contains("useradmin.aspx") &&
             !Request.AppRelativeCurrentExecutionFilePath.ToLower().Contains("resourceeditdialog.aspx") &&
             !Request.RawUrl.ToLower().Contains("edit=content") &&
             !Request.RawUrl.ToLower().Contains("edit=style") &&
             !Request.RawUrl.ToLower().Contains("cn=wizard") &&
             !Request.RawUrl.ToLower().Contains("p=dashboard"))
         {
             Response.Filter = new ScriptDeferFilter(Response);
         }
     }
 }
 protected override void OnInit(EventArgs e)
 {
     base.OnInit(e);
     currentLanguage    = CultureHandler.GetCurrentSpecificLanguageCode();
     repLang.DataSource = _4screen.Utils.Web.SiteConfig.Cultures;
     repLang.DataMember = "Key";
     repLang.DataBind();
 }
示例#4
0
        private void AddNavNode(string nodeText, string nodeValue, string parentNodeValue)
        {
            Guid currentNavId         = new Guid(hidCurrNavID.Value);
            CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString());

            hidParentNodeId.Value = parentNodeValue;
            //Savte the Current Node in the struct XML
            var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(currentNavId).SingleOrDefault();

            if (navStructureRecord != null)
            {
                XElement xmlStruct  = XElement.Parse(navStructureRecord.NST_XMLStruct);
                var      parentNode = (from theNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == parentNodeValue)
                                       select theNodes).SingleOrDefault();
                if (parentNode != null)
                {
                    parentNode.Add(new XElement("Node", new XAttribute("Text", nodeText), new XAttribute("Value", nodeValue)));
                }
                else
                {
                    //The Parent Node is the Root... add it to the Tree
                    xmlStruct.Add(new XElement("Node", new XAttribute("Text", nodeText), new XAttribute("Value", nodeValue)));
                }
                csb.hisp_Navigation_SaveNavigationStructure(currentNavId, null, xmlStruct.ToString());
                lbtnG.Text     = language.GetString("TooltipNotSynchronized");
                lbtnG.CssClass = "icon navnotsynchro";


                var navLanguageRecord = csb.hisp_Navigation_GetNavigationLanguageXML(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault();
                if (navLanguageRecord != null)
                {
                    XElement xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames);
                    var      langNode    = (from theLangNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue)
                                            select theLangNodes).SingleOrDefault();
                    if (langNode == null)
                    {
                        xmlLanguage.Add(new XElement(new XElement("Node", new XAttribute("Text", nodeText), new XAttribute("Value", nodeValue))));
                    }
                    else
                    {
                        //Should never happen...
                        langNode.Attribute("Text").Value = nodeText;
                    }
                    csb.hisp_Navigation_SaveNavigationLanguage(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode(), xmlLanguage.ToString(), string.Empty);
                }
                else
                {
                    csb.hisp_Navigation_SaveNavigationLanguage(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode(), "<Tree/>", string.Empty);
                }
            }
        }
示例#5
0
 protected override void OnInit(EventArgs e)
 {
     base.OnInit(e);
     currentNeutralLanguage = CultureHandler.GetCurrentNeutralLanguageCode();
     ci = new CultureInfo(currentNeutralLanguage);
     LoadDdlLangs(currentNeutralLanguage);
     navId     = new Guid(Request.QueryString["NAV"]);
     nodeValue = Request.QueryString["NID"];
     LoadCurrent();
     if (!Page.IsPostBack)
     {
         LoadTranslation();
     }
 }
示例#6
0
 private void InitialiseEverything()
 {
     RNG.SetSeed(DateTime.Now.Millisecond);
     ScriptingEngine.Initialise();
     ObjectIcons.Load();
     NeedHandler.Initialise();
     AbilityHandler.Initialise();
     JobHandler.Initialise();
     CultureHandler.Initialise();
     MaterialHandler.Initialise();
     ItemHandler.LoadItems();
     NameProvider.Initialise();
     EntityTemplateHandler.Initialise();
 }
示例#7
0
        private void ShowEditMode()
        {
            lbtnE.Visible     = false;
            litOutput.Visible = false;
            litOutput.ID      = null;

            //Print the languagebar here for the events to fire
            if (_4screen.Utils.Web.SiteConfig.Languages.Count > 0)
            {
                PrintLanguageBar();
            }

            string content = GetContentValue(true, txtLN.Value);

            REd.Content          = content;
            REd.Height           = new Unit(200, UnitType.Pixel);
            REd.Language         = CultureHandler.GetCurrentSpecificLanguageCode();
            REd.AutoResizeHeight = true;

            pnlEditMode.Visible = true;
        }
示例#8
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsEmbedded && PageInfo.CommunityId.HasValue)
            {
                communityId = PageInfo.CommunityId.Value;
            }

            udc = UserDataContext.GetUserDataContext();
            ShowNormalMode();
            litOutput.ID = null;

            if (string.IsNullOrEmpty(txtLN.Value))
            {
                txtLN.Value = CultureHandler.GetCurrentSpecificLanguageCode(); //Here shoudd go the current User's Language
            }
            //Print the languagebar here for the events to to fire
            if (_4screen.Utils.Web.SiteConfig.Languages.Count > 0)
            {
                PrintLanguageBar();
            }
        }
示例#9
0
        protected void lbtnSaveNode_Click(object sender, EventArgs e)
        {
            Guid   currentNavId       = new Guid(hidCurrNavID.Value);
            string nodeValue          = Request.Form[hidCurrentNodeValue.UniqueID];
            CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString());
            XElement xmlLanguageNode;
            var      navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(currentNavId).SingleOrDefault();
            var      navLanguageRecord  = csb.hisp_Navigation_GetNavigationLanguageXML(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault();

            if (navStructureRecord != null)
            {
                XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct);
                XElement xmlLanguage;
                XElement xmlStructNode = (from xmlStructNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue)
                                          select xmlStructNodes).SingleOrDefault();

                if (navLanguageRecord != null)
                {
                    xmlLanguage     = XElement.Parse(navLanguageRecord.NAV_XMLNames);
                    xmlLanguageNode = (from xmlLanguageNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue)
                                       select xmlLanguageNodes).SingleOrDefault();
                    if (xmlLanguageNode == null)
                    {
                        xmlLanguageNode = XElement.Parse(string.Format(@"<Node Text='' Value='{0}'/>", nodeValue));
                        xmlLanguage.Add(xmlLanguageNode);
                    }
                }
                else
                {
                    xmlLanguage     = XElement.Parse(string.Format(@"<Tree><Node Text='' Value='{0}'/></Tree>", nodeValue));
                    xmlLanguageNode = xmlLanguage.Nodes().OfType <XElement>().FirstOrDefault();
                }
                if (rcRoles.Items.Count == 0)
                {
                    LoadRolesCombobox(xmlStructNode);
                }
                if (rcLinks.Items.Count == 1)
                {
                    LoadPredefinedUrls();
                }
                xmlStructNode.SetAttributeValue("Text", Request.Form[txtText.UniqueID]);
                xmlStructNode.SetAttributeValue("Tooltip", Request.Form[txtTextTool.UniqueID]);
                xmlStructNode.SetAttributeValue("Value", nodeValue);
                xmlStructNode.SetAttributeValue("RolesVisibility", GetRoleVisibility());
                //Attention RadCombobox Returns the text and not the Value of the selected Combo
                xmlStructNode.SetAttributeValue("Target", rcTarget.FindItemByText(Request.Form[rcTarget.UniqueID]).Value);

                xmlLanguageNode.SetAttributeValue("Text", Request.Form[txtText.UniqueID]);
                xmlLanguageNode.SetAttributeValue("Tooltip", Request.Form[txtTextTool.UniqueID]);
                xmlLanguageNode.SetAttributeValue("Value", nodeValue);

                string rcLinksSelectedVal = GetRadComboboxValue(rcLinks);

                if (rcLinksSelectedVal == "URL")
                {
                    string url = Request.Form[txtUrl.UniqueID];
                    xmlLanguageNode.SetAttributeValue("NavigateUrl", url);
                    xmlStructNode.SetAttributeValue("ObjectUrl", string.Empty);
                    xmlStructNode.SetAttributeValue("PredefinedUrl", string.Empty);
                }
                else if (rcLinksSelectedVal.StartsWith("OT_"))
                {
                    string url = Request.Form[txtUrl.UniqueID];
                    xmlLanguageNode.SetAttributeValue("NavigateUrl", url);
                    xmlStructNode.SetAttributeValue("ObjectUrl", rcLinksSelectedVal.Substring(3));
                    xmlStructNode.SetAttributeValue("PredefinedUrl", string.Empty);
                }
                else
                {
                    var xPredefinedNavies = Constants.Links[rcLinksSelectedVal];
                    if (xPredefinedNavies != null)
                    {
                        string url = xPredefinedNavies.Url;
                        xmlLanguageNode.SetAttributeValue("NavigateUrl", url);
                        string localizationBaseFileName = "Navigation";
                        if (!string.IsNullOrEmpty(xPredefinedNavies.LocalizationBaseFileName))
                        {
                            localizationBaseFileName = xPredefinedNavies.LocalizationBaseFileName;
                        }

                        xmlLanguageNode.SetAttributeValue("Text", GuiLanguage.GetGuiLanguage(localizationBaseFileName).GetString(xPredefinedNavies.UrlTextKey) ?? Request.Form[txtText.UniqueID]);
                    }
                    else
                    {
                        xmlLanguageNode.SetAttributeValue("NavigateUrl", null);
                    }
                    xmlStructNode.SetAttributeValue("PredefinedUrl", rcLinksSelectedVal);
                    xmlStructNode.SetAttributeValue("ObjectUrl", string.Empty);
                }
                csb.hisp_Navigation_SaveNavigationStructure(currentNavId, null, xmlStruct.ToString());
                lbtnG.Text     = language.GetString("TooltipNotSynchronized");
                lbtnG.CssClass = "icon navnotsynchro";

                csb.hisp_Navigation_SaveNavigationLanguage(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode(), xmlLanguage.ToString(), string.Empty);
                rtv1.SelectedNode.Text = xmlLanguageNode.Attribute("Text").Value;
                ShowNodeEdit(Request.Form[hidCurrentNodeValue.UniqueID], true);
            }
        }
示例#10
0
        private void ShowNodeEdit(string nodeValue, bool updateValues)
        {
            pnlNavNodeProp.Visible  = true;
            pnlNaviNameEdit.Visible = false;
            Guid currentNavId           = new Guid(hidCurrNavID.Value);
            CSBooster_DataContext csb   = new CSBooster_DataContext(Helper.GetSiemeConnectionString());
            XElement xmlStructNode      = null;
            XElement xmlLanguageNode    = null;
            var      navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(currentNavId).SingleOrDefault();
            var      navLanguageRecord  = csb.hisp_Navigation_GetNavigationLanguageXML(currentNavId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault();

            if (navStructureRecord != null)
            {
                XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct);
                xmlStructNode = (from xmlStructNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue)
                                 select xmlStructNodes).SingleOrDefault();

                if (navLanguageRecord != null)
                {
                    XElement xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames);
                    xmlLanguageNode = (from xmlLanguageNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue)
                                       select xmlLanguageNodes).SingleOrDefault() ?? XElement.Parse(string.Format(@"<Node Text='' Value='{0}'/>", nodeValue));
                }
                else
                {
                    xmlLanguageNode = XElement.Parse(string.Format(@"<Node Text='' Value='{0}'/>", nodeValue));
                }
            }
            LoadRolesCombobox(xmlStructNode);
            txtText.Text = xmlLanguageNode.Attribute("Text") != null?xmlLanguageNode.Attribute("Text").Value : string.Empty;

            txtTextTool.Text = xmlLanguageNode.Attribute("Tooltip") != null?xmlLanguageNode.Attribute("Tooltip").Value : string.Empty;

            string target = xmlStructNode.Attribute("Target") != null?xmlStructNode.Attribute("Target").Value : "_self";

            rcTarget.SelectedIndex = rcTarget.Items.FindItemIndexByValue(target);
            LoadPredefinedUrls();
            if (updateValues)
            {
                if ((xmlStructNode.Attribute("PredefinedUrl") == null || xmlStructNode.Attribute("PredefinedUrl").Value == "") &&
                    (xmlStructNode.Attribute("ObjectUrl") == null || string.IsNullOrEmpty(xmlStructNode.Attribute("ObjectUrl").Value)))
                {
                    //Neither Predeifined nor link to an object
                    rcLinks.SelectedIndex = 0;
                    if (xmlLanguageNode.Attribute("NavigateUrl") != null && !string.IsNullOrEmpty(xmlLanguageNode.Attribute("NavigateUrl").Value))
                    {
                        txtUrl.Text = xmlLanguageNode.Attribute("NavigateUrl").Value;
                    }
                    else
                    {
                        txtUrl.Text = string.Empty;
                    }
                    txtUrl.Visible = true;
                    pnlLinkPicker.Controls.Clear();
                }
                else if (xmlStructNode.Attribute("ObjectUrl") != null && !string.IsNullOrEmpty(xmlStructNode.Attribute("ObjectUrl").Value))
                {
                    //link to an object
                    rcLinks.SelectedIndex = rcLinks.Items.FindItemIndexByValue("OT_" + xmlStructNode.Attribute("ObjectUrl").Value);
                    if (xmlLanguageNode.Attribute("NavigateUrl") != null && !string.IsNullOrEmpty(xmlLanguageNode.Attribute("NavigateUrl").Value))
                    {
                        txtUrl.Text = xmlLanguageNode.Attribute("NavigateUrl").Value;
                    }
                    else
                    {
                        txtUrl.Text = string.Empty;
                    }

                    txtUrl.Visible = true;
                    RcLinkSingleObjectType(xmlStructNode.Attribute("ObjectUrl").Value);
                }
                else
                {
                    pnlLinkPicker.Controls.Clear();
                    //Predeifined
                    try
                    {
                        try
                        {
                            txtUrl.Attributes.Remove("style");
                        }
                        catch
                        {
                        }
                        txtUrl.Attributes.Add("style", "display:none;visibility:hidden;");
                        txtUrl.Text = string.Empty;
                    }
                    catch
                    {
                        rcLinks.SelectedIndex = 0;
                        txtUrl.Text           = string.Empty;
                        txtUrl.Visible        = true;
                    }
                }
            }
            lbtnT.NavigateUrl = string.Format("javascript:radWinOpen('/Pages/Popups/NavigationTranslate.aspx?NAV={0}&NID={1}&Target={2}', 'Navigation', 550, 400, true)", currentNavId, nodeValue, "NodeTrans");

            lbtnT.Visible = SiteConfig.NeutralLanguages.Count > 1;
        }
示例#11
0
 public static List <CountryName> Load()
 {
     return(Data.CountryNames.Load(CultureHandler.GetCurrentSpecificLanguageCode()));
 }
示例#12
0
        private void LoadCurrent()
        {
            CSBooster_DataContext csb = new CSBooster_DataContext(Helper.GetSiemeConnectionString());
            XElement xmlLanguageNode  = null;

            litCurrLang.Text = ci.NativeName;
            var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(navId).SingleOrDefault();
            var navLanguageRecord  = csb.hisp_Navigation_GetNavigationLanguageXML(navId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault();

            XElement xmlStruct     = XElement.Parse(navStructureRecord.NST_XMLStruct);
            XElement xmlStructNode = (from xmlStructNodes in xmlStruct.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue)
                                      select xmlStructNodes).SingleOrDefault();

            if (navLanguageRecord != null)
            {
                XElement xmlLanguage = XElement.Parse(navLanguageRecord.NAV_XMLNames);
                xmlLanguageNode = (from xmlLanguageNodes in xmlLanguage.Descendants("Node").Where(x => x.Attribute("Value").Value == nodeValue)
                                   select xmlLanguageNodes).SingleOrDefault();
            }
            if (xmlLanguageNode != null)
            {
                litText.Text = xmlLanguageNode.Attribute("Text") != null?xmlLanguageNode.Attribute("Text").Value : string.Empty;

                litTooltip.Text = xmlLanguageNode.Attribute("Tooltip") != null?xmlLanguageNode.Attribute("Tooltip").Value : string.Empty;

                if (xmlStructNode.Attribute("PredefinedUrl") == null || string.IsNullOrEmpty(xmlStructNode.Attribute("PredefinedUrl").Value))
                {
                    litLink.Text = xmlLanguageNode.Attribute("NavigateUrl") != null?xmlLanguageNode.Attribute("NavigateUrl").Value : string.Empty;
                }
                else
                {
                    litLink.Text = " Vordefiniert ";
                }
            }
        }
示例#13
0
        public static List <Entity> PlaceEntities(WorldInstance worldRef, List <string> entityTypes)
        {
            List <Entity> entities = new List <Entity>();

            List <EntityTemplate> templates = EntityTemplateHandler.Templates;

            templates = templates.Where(x => entityTypes.Contains(x.CreatureType)).ToList();

            int numberToPlace = (worldRef.Tiles.GetLength(0) * worldRef.Tiles.GetLength(1)) / 50;

            List <Vector2Int> availablePoints = new List <Vector2Int>();

            for (int i = 0; i < worldRef.Tiles.GetLength(0); i++)
            {
                for (int j = 0; j < worldRef.Tiles.GetLength(1); j++)
                {
                    Vector2Int point = new Vector2Int(i, j);
                    if (PhysicsManager.IsCollision(point, point, worldRef) == PhysicsResult.None && point != worldRef.SpawnPoint)
                    {
                        availablePoints.Add(point);
                    }
                }
            }

            for (int i = 0; i < numberToPlace; i++)
            {
                int pointIndex = RNG.Roll(0, availablePoints.Count - 1);

                int entityIndex = RNG.Roll(0, templates.Count - 1);

                Entity newEntity = null;
                if (templates[entityIndex].Sentient)
                {
                    CultureType culture = CultureHandler.Get(templates[entityIndex].CreatureType);

                    JobType jobType = JobHandler.GetRandom();

                    Dictionary <string, int> jobLevels = new Dictionary <string, int>();
                    jobLevels.Add(jobType.name, 1);

                    newEntity = WorldState.EntityHandler.Create(templates[entityIndex], EntityNeed.GetFullRandomisedNeeds(), 1, jobType, culture.ChooseSex(), culture.ChooseSexuality(),
                                                                new Vector2Int(-1, -1), ObjectIcons.GetSprites(templates[entityIndex].Tileset, templates[entityIndex].CreatureType).ToList(), null);
                }
                else
                {
                    CultureType culture = CultureHandler.Get(templates[entityIndex].CreatureType);

                    JobType jobType = JobHandler.GetRandom();

                    Dictionary <string, int> jobLevels = new Dictionary <string, int>();
                    jobLevels.Add(jobType.name, 1);

                    newEntity = WorldState.EntityHandler.Create(templates[entityIndex], EntityNeed.GetBasicRandomisedNeeds(), 1, jobType, culture.ChooseSex(), culture.ChooseSexuality(),
                                                                new Vector2Int(-1, -1), ObjectIcons.GetSprites(templates[entityIndex].Tileset, templates[entityIndex].CreatureType).ToList(), null);
                }
                newEntity.Move(availablePoints[pointIndex]);
                newEntity.MyWorld = worldRef;
                entities.Add(newEntity);

                availablePoints.RemoveAt(pointIndex);
            }

            return(entities);
        }
示例#14
0
        public static string GetLocalizedUrl(string relativeUrl)
        {
            string returnUrl = relativeUrl;
            bool   addVPath  = false;

            try
            {
                bool.TryParse(ConfigurationManager.AppSettings["UseVirtualLanguagePath"], out addVPath);
            }
            catch
            {
            }
            if (addVPath)
            {
                bool   continueSearch    = true;
                string languageCodeToAdd = string.Format("/{0}", CultureHandler.GetCurrentSpecificLanguageCode());
                // /someUrl.aspx                      ==> /CURRENTLANGGUAGECODE/someUrl.aspx
                // /someUrl.aspx?LG=LangCode          ==> /LangCode/someUrl.aspx
                // /someUrl.aspx?LG=langCode&Var=val  ==> /LangCode/someUrl.aspx?var=val
                // /someUrl.aspx?Var=val&LG=langCode  ==> /LangCode/someUrl.aspx?var=val
                // /LangCode/someUrl.aspx?Var=val     ==> /LangCode/someUrl.aspx?var=

                int firstIndexOfSlash = returnUrl.IndexOf("/");
                int lastIndexOfSlash  = returnUrl.LastIndexOf("/");

                if (firstIndexOfSlash < lastIndexOfSlash)
                {
                    string[] urlParts = returnUrl.Split('/');
                    try
                    {
                        //Is the first part a Culture
                        CultureInfo cu = new CultureInfo(urlParts[1]);
                        languageCodeToAdd = string.Empty;
                        continueSearch    = false;
                    }
                    catch (Exception)
                    {
                        //Do nothing.. just continue
                    }
                }
                if (continueSearch)
                {
                    if (returnUrl.IndexOf('?') > 0)
                    {
                        var    currentUrl      = returnUrl.Split('?');
                        string queryString     = currentUrl[1];
                        string queryNoLanguage = string.Empty;
                        if (!string.IsNullOrEmpty(queryString))
                        {
                            queryString.Replace("&amp;", "§§tempAmp§§");
                            string[] queryParams = queryString.Split('&');
                            foreach (string queryParam in queryParams)
                            {
                                var keyValuePair = queryParam.Split('=');
                                if (string.Compare(keyValuePair[0], "LG", true) != 0)
                                {
                                    queryNoLanguage += string.Format("{0}&", queryParam.Replace("§§tempAmp§§", "&amp;"));
                                }
                                else
                                {
                                    try
                                    {
                                        CultureInfo cu = new CultureInfo(keyValuePair[1]);
                                        languageCodeToAdd = string.Format("/{0}", keyValuePair[1]);
                                    }
                                    catch
                                    {
                                    }
                                }
                            }
                            if (queryNoLanguage.Length > 0)
                            {
                                queryNoLanguage = string.Format("?{0}", queryNoLanguage.TrimEnd('&'));
                            }
                        }
                        returnUrl = string.Format("{0}{1}", currentUrl[0], queryNoLanguage);
                    }
                }
                returnUrl = string.Format("{0}{1}", languageCodeToAdd, returnUrl);
            }
            return(returnUrl);
        }
示例#15
0
        public async Task SendReportPdfAsync(
            [QueueTrigger("sendreportpdf")] ReportQueue reportMessage,
            [Blob("report/{ReportId}.pdf", FileAccess.Write)] CloudBlockBlob reportPdfOutput,
#if DEBUG
            [Blob("report/{ReportId}.html", FileAccess.Write)] CloudBlockBlob reportHtmlOutput,
#endif
            CancellationToken cancellationToken)
        {
            try
            {
                Trace.CorrelationManager.ActivityId = Guid.NewGuid();
                logger.LogTrace($"SendReport trigger event recived, ID: {reportMessage?.ReportId}.");

                if (string.IsNullOrEmpty(reportMessage?.CultureName))
                {
                    throw new ArgumentNullException(nameof(ReportQueue.CultureName));
                }

                CultureHandler.SetCulture(reportMessage.CultureName);
                var translate = new Translate();

                var report = dbContext.Reports.Where(r => (r.Status == ReportStatus.Created || r.Status == ReportStatus.Resending) &&
                                                     r.PartitionId == reportMessage.PartitionId && r.Id == reportMessage.ReportId).FirstOrDefault();
                if (report == null)
                {
                    throw new Exception("Report do not exists or has invalid status and is therefore not send.");
                }
                var reportData = await report.ReportData.FromJson <ReportDataApi>();

                var organization = dbContext.Organizations.Where(o => o.Id == reportMessage.PartitionId).Select(o => new { o.Name, o.Address, o.Logo }).FirstOrDefault();

                using (var pdfReportHtmlStream = await ReportHtml.CreateReportStream(translate, reportData.ShowGroupColl, organization?.Logo, organization?.Name, organization?.Address, reportData.ReportTitle, reportData.ReportSubTitle, reportData.ReportText, reportData.Report))
                {
#if DEBUG
                    await reportHtmlOutput.UploadFromStreamAsync(pdfReportHtmlStream);

                    pdfReportHtmlStream.Position = 0;
#endif

                    using (var reportPdfStream = new MemoryStream())
                    {
                        logger.LogTrace($"Before create PDF: {reportMessage?.ReportId}.");
                        PdfProvider.CreatePdfAsync(reportPdfStream, pdfReportHtmlStream, cancellationToken: cancellationToken);
                        logger.LogTrace($"After create PDF: {reportMessage?.ReportId}.");

                        if (!cancellationToken.IsCancellationRequested)
                        {
                            await SendEmailReport(reportPdfStream, translate, report);
                            await UpdateReportStatus(reportMessage.PartitionId, reportMessage.ReportId, report.Status == ReportStatus.Created?ReportStatus.Send : ReportStatus.Resend);
                        }

                        await reportPdfOutput.UploadFromStreamAsync(reportPdfStream);
                    }
                }

                logger.LogTrace($"SendReport report send, ID: {reportMessage?.ReportId}.");
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"SendReport failed, ID: {reportMessage?.ReportId}.");
                throw;
            }
        }
示例#16
0
        private void ShowNormalMode()
        {
            string content = string.Empty;

            lbtnE.Visible       = false;
            pnlEditMode.Visible = false;

            if (IsUserEditor())
            {
                lbtnE.Visible = true;
            }

            content = GetContentValue(false, CultureHandler.GetCurrentSpecificLanguageCode());
            content = content.Replace("##DATE##", DateTime.Now.ToString("dddd, dd. MMMM yyyy"));
            if (udc.IsAuthenticated)
            {
                content = content.Replace("##LinkProfilePage##", Helper.GetDetailLink("User", udc.Nickname));
            }
            else
            {
                content = content.Replace("##LinkProfilePage##", Constants.Links["LINK_TO_REGISTRATION_PAGE"].Url);
            }
            Match match = Regex.Match(content, "##LinkCreate(.*?)##");

            if (match.Success)
            {
                if (udc.IsAuthenticated)
                {
                    string objectType = match.Groups[1].Value;
                    string createLink = string.Format("{0}&XCN={1}&OID={2}&ReturnUrl={3}", Helper.GetUploadWizardLink(Helper.GetObjectTypeNumericID(objectType), _4screen.CSB.Common.SiteConfig.UsePopupWindows), UserProfile.Current.ProfileCommunityID, Guid.NewGuid(), System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(Request.RawUrl)));
                    content = Regex.Replace(content, "##LinkCreate.*?##", createLink);
                }
                else
                {
                    content = Regex.Replace(content, "##LinkCreate.*?##", Constants.Links["LINK_TO_REGISTRATION_PAGE"].Url);
                }
            }


            if (content.IndexOf("##SendReport##") > -1)
            {
                if (udc.IsAuthenticated)
                {
                    string objectType = string.Empty;
                    if (!string.IsNullOrEmpty(Request.QueryString["OT"]))
                    {
                        objectType = Helper.GetObjectTypeNumericID(Request.QueryString["OT"]).ToString();
                    }

                    string href = string.Format("javascript:radWinOpen('/Pages/Popups/MessageSend.aspx?MsgType=rep&RecType=report&ObjType={0}&URL={1}', '{2}', 450, 450, true)", objectType, System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(Request.RawUrl)), languageShared.GetString("CommandContentReport").StripForScript());
                    content = content.Replace("##SendReport##", href);
                }
                else
                {
                    content = content.Replace("##SendReport##", Constants.Links["LINK_TO_LOGIN_PAGE"].Url);
                }
            }

            //invite
            if (content.IndexOf("##SendPropose##") > -1)
            {
                string objectType = string.Empty;
                if (!string.IsNullOrEmpty(Request.QueryString["OT"]))
                {
                    objectType = Helper.GetObjectTypeNumericID(Request.QueryString["OT"]).ToString();
                }

                string href = string.Format("javascript:radWinOpen('/Pages/Popups/MessageSend.aspx?MsgType=rec&URL={0}', '{1}', 450, 450, true)", System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Empty)), languageShared.GetString("CommandRecommend").StripForScript());
                content = content.Replace("##SendPropose##", href);
            }

            litOutput.Text    = content;
            litOutput.Visible = true;
        }
示例#17
0
        private void LoadNaviTree(Guid?navTreeId)
        {
            //Load The structure of the Navigation
            CSBooster_DataContext csb         = new CSBooster_DataContext(Helper.GetSiemeConnectionString());
            XDocument             xNavigation = new XDocument();

            if (navTreeId.HasValue)
            {
                hidCurrNavID.Value = navTreeId.ToString();
                var navStructureRecord = csb.hisp_Navigation_GetNavigationStructureXML(navTreeId).SingleOrDefault();
                var navLanguageRecord  = csb.hisp_Navigation_GetNavigationLanguageXML(navTreeId, CultureHandler.GetCurrentNeutralLanguageCode()).SingleOrDefault();
                if (navStructureRecord != null)
                {
                    XElement xmlStruct = XElement.Parse(navStructureRecord.NST_XMLStruct);

                    XElement xmlLanguage = navLanguageRecord != null?XElement.Parse(navLanguageRecord.NAV_XMLNames) : XElement.Parse(@"<Tree/>");

                    xNavigation = new XDocument();
                    XElement xRoot           = new XElement("Tree");
                    XElement xCurrentParrent = new XElement("Node", new XAttribute("Text", csb.hisp_Navigation_GetNavigationKeyName(navTreeId).SingleOrDefault().NST_KeyName), new XAttribute("Value", navTreeId.ToString()));

                    foreach (var xnode in xmlStruct.Elements("Node"))
                    {
                        XElement xnewChild = DataAccess.Business.Navigation.ReplaceData(xnode, xmlLanguage, true);
                        if (xnewChild != null)
                        {
                            xCurrentParrent.Add(xnewChild);
                        }
                    }

                    xRoot.Add(xCurrentParrent);
                    xNavigation.Add(xRoot);
                    if (navStructureRecord.NST_IsDirty)
                    {
                        lbtnG.Text     = language.GetString("TooltipNotSynchronized");
                        lbtnG.CssClass = "icon navnotsynchro";
                    }
                    else
                    {
                        lbtnG.Text     = language.GetString("TooltipSynchronized");
                        lbtnG.CssClass = "icon navsynchro";
                    }
                }
            }
            else
            {
                navTreeId          = Guid.NewGuid();
                hidCurrNavID.Value = navTreeId.ToString();
                xNavigation        = XDocument.Parse(string.Format(@"<Tree><Node Text=""Neue Navigation"" Value=""{0}""/></Tree>", hidCurrNavID.Value));
                //Create a New Navigation
                XDocument xStruct = new XDocument(
                    new XElement("Tree"));
                XDocument xLang = new XDocument(
                    new XElement("Tree"));
                csb.hisp_Navigation_SaveNavigationStructure(navTreeId, "Neue Navigation", xStruct.ToString());
                lbtnG.Text     = language.GetString("TooltipNotSynchronized");
                lbtnG.CssClass = "icon navnotsynchro";

                csb.hisp_Navigation_SaveNavigationLanguage(navTreeId, CultureHandler.GetCurrentNeutralLanguageCode(), xLang.ToString(), string.Empty);
                lbtnG.Text     = language.GetString("TooltipSynchronized");
                lbtnG.CssClass = "icon navnotsynchro";
            }
            rtv1.LoadXmlString(xNavigation.ToString());
            rtv1.Nodes[0].EnableContextMenu = true;
            rtv1.Nodes[0].ContextMenuID     = rtvCMRoot.ID;
        }
示例#18
0
        public async Task SendInvoicePdfAsync(
            [QueueTrigger("sendinvoicepdf")] InvoiceQueue invoiceMessage,
            [Blob("invoice/{InvoiceId}.pdf", FileAccess.Write)] CloudBlockBlob invoicePdfOutput,
#if DEBUG
            [Blob("invoice/{InvoiceId}.html", FileAccess.Write)] CloudBlockBlob invoiceHtmlOutput,
#endif
            CancellationToken cancellationToken)
        {
            try
            {
                Trace.CorrelationManager.ActivityId = Guid.NewGuid();
                logger.LogTrace($"SendInvoice trigger event recived, ID: {invoiceMessage?.InvoiceId}.");

                if (string.IsNullOrEmpty(invoiceMessage?.CultureName))
                {
                    throw new ArgumentNullException(nameof(InvoiceQueue.CultureName));
                }

                CultureHandler.SetCulture(invoiceMessage.CultureName);
                var translate = new Translate();

                var invoice = dbContext.Invoices.Where(i => (i.Status == InvoiceStatus.Created || i.Status == InvoiceStatus.Resending) &&
                                                       i.PartitionId == invoiceMessage.PartitionId && i.Id == invoiceMessage.InvoiceId).FirstOrDefault();
                if (invoice == null)
                {
                    throw new Exception("Invoice do not exists or have invalid status and is therefore not send.");
                }
                var invoiceData = await invoice.InvoiceData.FromJson <InvoiceDataApi>();

                var organization = dbContext.Organizations.Where(o => o.Id == invoiceMessage.PartitionId).Select(o => new { o.Name, o.Address, o.Logo, o.VatNumber }).FirstOrDefault();

                using (var pdfInvoiceHtmlStream = await InvoiceHtml.CreateInvoiceStream(translate, invoice, invoiceData, organization?.Logo, organization?.Name, organization?.Address))
                {
#if DEBUG
                    await invoiceHtmlOutput.UploadFromStreamAsync(pdfInvoiceHtmlStream);

                    pdfInvoiceHtmlStream.Position = 0;
#endif

                    using (var invoicePdfStream = new MemoryStream())
                    {
                        logger.LogTrace($"Before create PDF: {invoiceMessage?.InvoiceId}.");
                        PdfProvider.CreatePdfAsync(invoicePdfStream, pdfInvoiceHtmlStream, cancellationToken: cancellationToken);
                        logger.LogTrace($"After create PDF: {invoiceMessage?.InvoiceId}.");

                        if (!cancellationToken.IsCancellationRequested)
                        {
                            await SendEmailInvoice(invoicePdfStream, translate, invoice);
                            await UpdateInvoiceStatus(invoiceMessage.PartitionId, invoiceMessage.InvoiceId, invoice.Status == InvoiceStatus.Created?InvoiceStatus.Send : InvoiceStatus.Resend);
                        }

                        await invoicePdfOutput.UploadFromStreamAsync(invoicePdfStream);
                    }
                }

                logger.LogTrace($"SendInvoice invoice send, ID: {invoiceMessage?.InvoiceId}.");
            }
            catch (Exception ex)
            {
                logger.LogError(ex, $"SendInvoice failed, ID: {invoiceMessage?.InvoiceId}.");
                throw;
            }
        }