示例#1
0
 IEnumerable <AutocompleteItem> CompleteClans(string term, ZkDataContext db)
 {
     if (string.IsNullOrEmpty(term))
     {
         return(new List <AutocompleteItem>());
     }
     return
         (db.Clans.Where(x => !x.IsDeleted && (x.ClanName.Contains(term) || x.Shortcut.Contains(term)))
          .OrderBy(x => x.ClanName).Take(autocompleteCount).ToList()
          .Select(x => new AutocompleteItem()
     {
         id = x.ClanID,
         url = Url.Action("Detail", "Clans", new { id = x.ClanID }),
         value = x.ClanName,
         label = HtmlHelperExtensions.PrintClan(null, x).ToString()
     }));
 }
        public void RenderFunctionsCalledNonLazily()
        {
            var component           = new Mock <IReactComponent>();
            var fakeRenderFunctions = new Mock <IRenderFunctions>();

            fakeRenderFunctions.Setup(x => x.PreRender(It.IsAny <Func <string, string> >())).Verifiable();
            fakeRenderFunctions.Setup(x => x.PostRender(It.IsAny <Func <string, string> >())).Verifiable();
            fakeRenderFunctions.Setup(x => x.TransformRenderedHtml(It.IsAny <string>())).Returns("HTML");

            component.Setup(x => x.RenderHtml(It.IsAny <TextWriter>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <Action <Exception, string, string> >(), It.IsAny <IRenderFunctions>()))
            .Callback((TextWriter writer, bool renderContainerOnly, bool renderServerOnly, Action <Exception, string, string> exceptionHandler, IRenderFunctions renderFunctions) =>
            {
                renderFunctions.PreRender(_ => "one");
                writer.Write(renderFunctions.TransformRenderedHtml("HTML"));
                renderFunctions.PostRender(_ => "two");
            }).Verifiable();

            var environment = ConfigureMockEnvironment();

            environment.Setup(x => x.CreateComponent(
                                  "ComponentName",
                                  new { },
                                  null,
                                  false,
                                  true,
                                  false
                                  )).Returns(component.Object);

            var result = HtmlHelperExtensions.React(
                htmlHelper: null,
                componentName: "ComponentName",
                props: new { },
                htmlTag: "span",
                clientOnly: false,
                serverOnly: true,
                renderFunctions: fakeRenderFunctions.Object
                );

            // JS calls must happen right away so thrown exceptions do not crash the app.
            component.Verify(x => x.RenderHtml(It.IsAny <TextWriter>(), It.Is <bool>(y => y == false), It.Is <bool>(z => z == true), It.IsAny <Action <Exception, string, string> >(), It.IsAny <IRenderFunctions>()), Times.Once);
            fakeRenderFunctions.Verify(x => x.PreRender(It.IsAny <Func <string, string> >()), Times.Once);
            fakeRenderFunctions.Verify(x => x.PostRender(It.IsAny <Func <string, string> >()), Times.Once);

            Assert.Equal("HTML", result.ToHtmlString());
        }
示例#3
0
        protected void Update(bool showCropper = true)
        {
            string str;

            GetSrc(out str);
            SheerResponse.SetAttribute(string.Concat(this.ID, "_image"), "src", str);


            var updateModel = new AdvancedImageEditorUpdateModel
            {
                Details    = GetDetails(),
                Thumbnails = GetThumbnails()
            };
            var updateView = HtmlHelperExtensions.GetRazorViewAsString("~/Views/Shared/Fields/AdvancedImageUpdate.cshtml", updateModel);

            SheerResponse.SetInnerHtml(string.Concat(ID, "_details"), updateView);
            SheerResponse.Eval("scContent.startValidators()");
        }
        public void ShouldRedirectPermanent()
        {
            var mocks = ConfigureMockReactEnvironment();

            ConfigureMockConfiguration();

            mocks.Engine.Setup(x => x.Evaluate <string>("JSON.stringify(context);"))
            .Returns(@"{ status: 301, url: ""/foo"" }");

            var htmlHelperMock = new HtmlHelperMocks();

            HtmlHelperExtensions.ReactRouterWithContext(
                htmlHelper: htmlHelperMock.htmlHelper.Object,
                componentName: "ComponentName",
                props: new { },
                path: "/"
                );
            htmlHelperMock.httpResponse.Verify(x => x.RedirectPermanent(It.IsAny <string>()));
        }
示例#5
0
        public void TestCalculateColor()
        {
            MvcHtmlString result = HtmlHelperExtensions.CalculateColor(null, 1);

            Assert.IsTrue(!result.Equals(string.Empty));
            Assert.AreEqual(result.ToString(), "background-color:rgba(0,0, 0, 1); color:rgb(255,255, 255);");

            result = HtmlHelperExtensions.CalculateColor(null, -1);
            Assert.IsTrue(!result.Equals(string.Empty));
            Assert.AreEqual(result.ToString(), "background-color:rgba(255,140, 0, 1); color:rgb(255,255, 255);");

            result = HtmlHelperExtensions.CalculateColor(null, 0.5);
            Assert.IsTrue(!result.Equals(string.Empty));
            Assert.AreEqual(result.ToString(), "background-color:rgba(0,0, 0, 0.5); color:rgb(0,0, 0);");

            result = HtmlHelperExtensions.CalculateColor(null, -0.5);
            Assert.IsTrue(!result.Equals(string.Empty));
            Assert.AreEqual(result.ToString(), "background-color:rgba(255,140, 0, 0.5); color:rgb(0,0, 0);");
        }
        public void ShouldModifyStatusCode()
        {
            var mocks = ConfigureMockReactEnvironment();

            ConfigureMockConfiguration();

            mocks.Engine.Setup(x => x.Evaluate <string>("JSON.stringify(context);"))
            .Returns("{ status: 200 }");

            var htmlHelperMock = new HtmlHelperMocks();

            HtmlHelperExtensions.ReactRouterWithContext(
                htmlHelper: htmlHelperMock.htmlHelper.Object,
                componentName: "ComponentName",
                props: new { },
                path: "/"
                );
            htmlHelperMock.httpResponse.VerifySet(x => x.StatusCode = 200);
        }
示例#7
0
        string GetThreadTooltip(int id)
        {
            var                 db     = new ZkDataContext();
            var                 thread = db.ForumThreads.Single(x => x.ForumThreadID == id);
            ForumPost           post   = null;
            ForumThreadLastRead last;

            if (thread.RestrictedClanID != null && thread.RestrictedClanID != Global.ClanID)
            {
                return("<span>This is a secret clan thread :-)</span>");
            }

            var postTitle = "Starting post ";

            if (Global.IsAccountAuthorized && (last = thread.ForumThreadLastReads.SingleOrDefault(x => x.AccountID == Global.AccountID)) != null)
            {
                if (last.LastRead < thread.LastPost)
                {
                    postTitle = "First unread post ";
                    post      = thread.ForumPosts.Where(x => x.Created > last.LastRead).OrderBy(x => x.ForumPostID).FirstOrDefault();
                }
                else
                {
                    postTitle = "Last post ";
                    post      = thread.ForumPosts.OrderByDescending(x => x.ForumPostID).FirstOrDefault();
                }
            }
            else
            {
                post = thread.ForumPosts.OrderBy(x => x.ForumPostID).FirstOrDefault();
            }
            var sb = new StringBuilder();

            if (post != null)
            {
                sb.AppendFormat("{0} {1}, {2}", postTitle, HtmlHelperExtensions.PrintAccount(null, post.Account).ToHtmlString(), post.Created.ToAgoString());
                sb.AppendFormat("<br/><span>{0}</span><br/>", HtmlHelperExtensions.BBCode(null, post.Text).ToHtmlString());
            }
            sb.AppendFormat("<small>Thread by {0}, {1}</small>",
                            HtmlHelperExtensions.PrintAccount(null, thread.AccountByCreatedAccountID).ToHtmlString(),
                            thread.Created.ToAgoString());
            return(sb.ToString());
        }
        private static string GetDisplayString(IHtmlHelper htmlHelper, dynamic obj, string displayExpression)
        {
            string value = displayExpression;

            if (!value.Contains("{") && !value.Contains(" "))
            {
                value = "{" + value + "}";
            }

            var replacementTokens = GetReplacementTokens(value);

            foreach (var token in replacementTokens)
            {
                var propertyName  = token.Substring(1, token.Length - 2);
                var displayString = HtmlHelperExtensions.ToString(ModelHelperExtensions.Display(htmlHelper, obj, propertyName));
                value = value.Replace(token, displayString);
            }

            return(value);
        }
        public void EngineIsReturnedToPoolAfterRender()
        {
            var config         = ConfigureMockConfiguration();
            var environment    = ConfigureMockEnvironment();
            var routerMocks    = new ReactRouterMocks(config, environment);
            var htmlHelperMock = new HtmlHelperMocks();

            environment.Verify(x => x.ReturnEngineToPool(), Times.Never);
            var result = HtmlHelperExtensions.ReactRouterWithContext(
                htmlHelper: htmlHelperMock.htmlHelper.Object,
                componentName: "ComponentName",
                props: new { },
                path: "/",
                htmlTag: "span",
                clientOnly: true,
                serverOnly: true
                );

            environment.Verify(x => x.ReturnEngineToPool(), Times.Once);
        }
        public void ReactWithServerOnlyTrueShouldCallRenderHtmlWithTrue()
        {
            var config = ConfigureMockConfiguration();

            var htmlHelperMock = new HtmlHelperMocks();
            var environment    = ConfigureMockEnvironment();
            var routerMocks    = new ReactRouterMocks(config, environment);

            var result = HtmlHelperExtensions.ReactRouterWithContext(
                htmlHelper: htmlHelperMock.htmlHelper.Object,
                componentName: "ComponentName",
                props: new { },
                path: "/",
                htmlTag: "span",
                clientOnly: false,
                serverOnly: true
                );

            routerMocks.component.Verify(x => x.RenderRouterWithContext(It.Is <bool>(y => y == false), It.Is <bool>(z => z == true)), Times.Once);
        }
 //[Route("dokument/versjon/{parentRegister}/{parentRegisterOwner}/{registername}/{itemOwner}/{itemname}/ny")]
 //[Route("dokument/versjon/{registername}/{itemOwner}/{itemname}/ny")]
 public ActionResult CreateNewVersion(Document document, HttpPostedFileBase documentfile, HttpPostedFileBase thumbnail, string parentRegisterOwner, string parentRegister, string registername, string itemname)
 {
     document.register = _registerService.GetSubregisterByName(parentRegister, registername);
     if (_accessControlService.AddToRegister(document.register))
     {
         if (!NameIsValid(document))
         {
             ModelState.AddModelError("ErrorMessage", HtmlHelperExtensions.ErrorMessageValidationName());
         }
         else if (ModelState.IsValid)
         {
             document = initialisationDocument(document, documentfile, thumbnail);
             if (ModelState.IsValid)
             {
                 return(Redirect(document.GetObjectUrl()));
             }
         }
     }
     return(View(document));
 }
        // GET: CustomersOrdersChart/fromDate/toDate
        public ActionResult CustomersOrdersChart(string fromDate, string toDate)
        {
            ViewBag.FromDate = fromDate ?? DateTime.Now.GetPersianDateByDashSpliter();
            ViewBag.ToDate   = toDate ?? DateTime.Now.GetPersianDateByDashSpliter();

            try
            {
                lock (CurrentUser)
                {
                    // Fill Chart Data ------------------------------------------
                    #region Chart Data

                    var opt = new ChartOption()
                    {
                        Name           = "customersOrdersChart",
                        ChartType      = ChartTypes.Column,
                        Tilte          = "درخواست مشتریان هر متصدی",
                        SubTitle       = "جمع درخواست ها: ",
                        YAxisTitle     = "جمع ریالی",
                        SeriesName     = "پرسنل",
                        ShowLegend     = false,
                        ShowDataLabels = true,
                        AjaxLoading    = true,
                        LoadDataUrl    = $"GetOfficerOrderStatisticsChart/{fromDate}/{toDate}",
                        SubTitleFunc   = "sum"
                    };

                    #endregion
                    //----------------------------------------------------------


                    return(PartialView("CustomersOrders/CustomersOrdersChart", HtmlHelperExtensions.GetHighChart(opt)));
                }
            }
            catch (Exception exp)
            {
                Elmah.ErrorSignal.FromCurrentContext().Raise(exp);
            }

            return(PartialView("CustomersOrders/CustomersOrdersChart"));
        }
示例#13
0
 IEnumerable <AutocompleteItem> CompleteMaps(string term, ZkDataContext db)
 {
     if (string.IsNullOrEmpty(term))
     {
         return(new List <AutocompleteItem>());
     }
     return
         (db.Resources.Where(x => x.InternalName.Contains(term) && x.TypeID == ResourceType.Map)
          .OrderByDescending(x => x.MapSupportLevel)
          .Take(autocompleteCount)
          .ToList()
          .Select(
              x =>
              new AutocompleteItem
     {
         label = HtmlHelperExtensions.PrintMap(null, x.InternalName).ToString(),
         url = Url.Action("Detail", "Maps", new { id = x.ResourceID }),
         value = x.InternalName,
         id = x.ResourceID
     }));
 }
        public void ShouldRunCustomContextHandler()
        {
            var mocks = ConfigureMockReactEnvironment();

            ConfigureMockConfiguration();
            ConfigureReactIdGenerator();

            mocks.Engine.Setup(x => x.Evaluate <string>("JSON.stringify(context);"))
            .Returns("{ status: 200 }");

            var htmlHelperMock = new HtmlHelperMocks();

            HtmlHelperExtensions.ReactRouter(
                htmlHelper: htmlHelperMock.htmlHelper.Object,
                componentName: "ComponentName",
                props: new { },
                path: "/",
                contextHandler: (response, context) => response.StatusCode = context.status.Value
                );
            htmlHelperMock.httpResponse.VerifySet(x => x.StatusCode = 200);
        }
        public void ShouldFailRedirectWithNoUrl()
        {
            var mocks = ConfigureMockReactEnvironment();

            ConfigureMockConfiguration();

            mocks.Engine.Setup(x => x.Evaluate <string>("JSON.stringify(context);"))
            .Returns("{ status: 301 }");

            var htmlHelperMock = new HtmlHelperMocks();

            Assert.Throws <ReactRouterException>(() =>

                                                 HtmlHelperExtensions.ReactRouterWithContext(
                                                     htmlHelper: htmlHelperMock.htmlHelper.Object,
                                                     componentName: "ComponentName",
                                                     props: new { },
                                                     path: "/"
                                                     )
                                                 );
        }
示例#16
0
 IEnumerable <AutocompleteItem> CompleteThreads(string term, int?categoryID, ZkDataContext db)
 {
     if (string.IsNullOrEmpty(term))
     {
         return(new List <AutocompleteItem>());
     }
     return
         (db.ForumThreads.Where(x => x.ForumCategoryID == categoryID || (categoryID == null && x.ForumCategory.ForumMode != ForumMode.Archive)).Where(x => (x.WikiKey != null && x.WikiKey.Contains(term)) || x.Title.Contains(term))
          .OrderByDescending(x => x.LastPost)
          .Take(autocompleteCount)
          .ToList()
          .Select(
              x =>
              new AutocompleteItem
     {
         label = HtmlHelperExtensions.Print(null, x).ToString(),
         url = x.WikiKey != null? Url.Action("Index", "Wiki", new { node = x.WikiKey }): Url.Action("Thread", "Forum", new { id = x.ForumThreadID }),
         value = x.WikiKey ?? x.Title,
         id = x.ForumThreadID
     }));
 }
示例#17
0
        public static CampaignEvent CreateCampaignEvent(int accountID, int campaignID, string format, params object[] args)
        {
            var ev = new CampaignEvent()
            {
                AccountID = accountID, CampaignID = campaignID, Time = DateTime.UtcNow
            };

            ev.PlainText = string.Format(format, args);
            var orgArgs = new List <object>(args);


            for (var i = 0; i < args.Length; i++)
            {
                var arg = args[i];
                var url = Global.UrlHelper();

                if (arg is Account)
                {
                    /*
                     * var acc = (Account)arg;
                     * args[i] = HtmlHelperExtensions.PrintAccount(null, acc);
                     * if (acc.AccountID != 0)
                     * {
                     *  if (!ev.EventAccounts.Any(x => x.AccountID == acc.AccountID)) ev.EventAccounts.Add(new EventAccount() { AccountID = acc.AccountID });
                     * }
                     * else if (!ev.EventAccounts.Any(x => x.Account == acc)) ev.EventAccounts.Add(new EventAccount() { Account = acc });
                     */
                }
                else if (arg is CampaignPlanet)
                {
                    var planet = (CampaignPlanet)arg;
                    args[i]     = HtmlHelperExtensions.PrintCampaignPlanet(null, planet);
                    ev.PlanetID = planet.PlanetID;
                }
            }


            ev.Text = string.Format(format, args);
            return(ev);
        }
        public void ShouldHandleQueryParams(bool withOverriddenPath)
        {
            var mocks = ConfigureMockReactEnvironment();

            ConfigureMockConfiguration();
            ConfigureReactIdGenerator();

            mocks.Engine.Setup(x => x.Evaluate <string>("JSON.stringify(context);"))
            .Returns("{ status: 200 }");

            var requestMock = new Mock <HttpRequestBase>();

            requestMock.SetupGet(x => x.Path).Returns("/test");
            var queryStringMock = new Mock <NameValueCollection>();

            queryStringMock.Setup(x => x.ToString()).Returns("?a=1&b=2");
            requestMock.SetupGet(x => x.QueryString).Returns(queryStringMock.Object);

            var htmlHelperMock = new HtmlHelperMocks(requestMock.Object);

            var result = HtmlHelperExtensions.ReactRouter(
                htmlHelper: htmlHelperMock.htmlHelper.Object,
                componentName: "ComponentName",
                props: new { },
                path: withOverriddenPath ? "/test2?b=1&c=2" : null,
                contextHandler: (response, context) => response.StatusCode = context.status.Value
                );

            htmlHelperMock.httpResponse.VerifySet(x => x.StatusCode = 200);

            if (withOverriddenPath)
            {
                mocks.Engine.Verify(x => x.Evaluate <string>(@"ReactDOMServer.renderToString(React.createElement(ComponentName, Object.assign({}, { location: '/test2?b=1&c=2', context: context })))"));
            }
            else
            {
                mocks.Engine.Verify(x => x.Evaluate <string>(@"ReactDOMServer.renderToString(React.createElement(ComponentName, Object.assign({}, { location: '/test?a=1&b=2', context: context })))"));
            }
        }
示例#19
0
        private static string GetMapTooltip(int id)
        {
            var db = new ZkDataContext();
            var sb = new StringBuilder();
            var r  = db.Resources.Single(x => x.ResourceID == id);

            sb.Append("<span>");
            sb.AppendFormat("{0}<br/>", r.InternalName);
            sb.AppendFormat("by {0}<br/>", r.AuthorName);
            //if (r.MapIsFfa == true) sb.AppendFormat("<img src='/img/map_tags/ffa.png' class='icon32'  />");
            //if (r.MapWaterLevel > 0) sb.AppendFormat("<img src='/img/map_tags/sea{0}.png' class='icon32'  />", r.MapWaterLevel);
            //if (r.MapHills > 0) sb.AppendFormat("<img src='/img/map_tags/hill{0}.png' class='icon32' />", r.MapHills);
            //if (r.MapIsSpecial == true) sb.AppendFormat("<img src='/img/map_tags/special.png' class='icon32' />");
            //if (r.MapIsAssymetrical == true) sb.AppendFormat("<img src='/img/map_tags/assymetrical.png' class='icon32' />");
            sb.Append("<br/>");
            sb.AppendFormat("<img src='/Resources/{0}' /><br/>", r.ThumbnailName);
            sb.AppendFormat("Rating: {0}", HtmlHelperExtensions.Stars(null, StarType.GreenStarSmall, r.MapRating).ToHtmlString());

            sb.Append("</span>");

            return(sb.ToString());
        }
        public void ReactWithClientOnlyTrueShouldCallRenderHtmlWithTrue()
        {
            var component = new Mock <IReactComponent>();

            component.Setup(x => x.RenderHtml(true)).Returns("HTML");
            var environment = ConfigureMockEnvironment();

            environment.Setup(x => x.CreateComponent(
                                  "ComponentName",
                                  new {},
                                  null
                                  )).Returns(component.Object);

            var result = HtmlHelperExtensions.React(
                htmlHelper: null,
                componentName: "ComponentName",
                props: new { },
                htmlTag: "span",
                clientOnly: true
                );

            component.Verify(x => x.RenderHtml(It.Is <bool>(y => y == true)), Times.Once);
        }
        public void ReactGetScriptPaths(bool withNonce)
        {
            var config      = new Mock <IReactSiteConfiguration>();
            var environment = ConfigureMockEnvironment(config.Object);

            if (withNonce)
            {
                config.Setup(x => x.ScriptNonceProvider).Returns(() => "test1234");
            }

            environment.Setup(x => x.GetScriptPaths()).Returns(new[] { "/dist/vendor.js", "/dist/app.js" });

            var result = HtmlHelperExtensions.ReactGetScriptPaths(null);

            if (withNonce)
            {
                Assert.Equal("<script nonce=\"test1234\" src=\"/dist/vendor.js\"></script><script nonce=\"test1234\" src=\"/dist/app.js\"></script>", result.ToHtmlString());
            }
            else
            {
                Assert.Equal("<script src=\"/dist/vendor.js\"></script><script src=\"/dist/app.js\"></script>", result.ToHtmlString());
            }
        }
        //[Route("dokument/{parentregister}/{registerowner}/{registername}/{itemowner}/{documentname}/rediger")]
        //[Route("dokument/{registername}/{itemowner}/{documentname}/rediger")]
        public ActionResult Edit(Document document, string parentregister, string registerowner, string registername, string itemowner, string documentname, HttpPostedFileBase documentfile, HttpPostedFileBase thumbnail, bool retired, bool sosi)
        {
            var originalDocument = (Document)_registerItemService.GetRegisterItem(parentregister, registername, documentname, document.versionNumber);

            if (originalDocument != null)
            {
                if (!_registerItemService.ItemNameIsValid(document))
                {
                    ModelState.AddModelError("ErrorMessage", HtmlHelperExtensions.ErrorMessageValidationName());
                }
                else if (ModelState.IsValid)
                {
                    var url = System.Web.Configuration.WebConfigurationManager.AppSettings["RegistryUrl"] + "data/" + Document.DataDirectory;
                    document.documentUrl = documentUrl(url, documentfile, document.documentUrl, document.name, originalDocument.register.name, document.versionNumber, document.Accepted?.ToString(), originalDocument?.Accepted.ToString());
                    if (document.documentUrl == "IllegalSchemaLocation")
                    {
                        ModelState.AddModelError("ErrorMessageFileName", ErrorMessageIllegalSchemaLocation);
                        document.documentUrl = "";
                    }
                    else
                    {
                        if (document.register == null)
                        {
                            document.register = originalDocument.register;
                        }
                        document.thumbnail = GetThumbnail(document, documentfile, url, thumbnail);
                        originalDocument   = _documentService.UpdateDocument(originalDocument, document, documentfile, thumbnail, retired, sosi);


                        //document = initialisationDocument(document, documentfile, thumbnail, retired, sosi, originalDocument);
                        return(Redirect(originalDocument.GetObjectUrl()));
                    }
                }
            }
            Viewbags(document);
            return(View(originalDocument));
        }
示例#23
0
        public ActionResult WriteTemplate(string appName, string json, bool setValues = false)
        {
            try
            {
                object rehydrated = JsonConvert.DeserializeObject(json);

                string   name = GetName((JObject)rehydrated);
                string   path = Server.MapPath("~/bam/apps/{0}/dust/{1}.dust"._Format(appName, name));
                string   html = HtmlHelperExtensions.FieldsetFor(null, rehydrated, name, null, setValues).ToString().XmlToHumanReadable();
                FileInfo file = new System.IO.FileInfo(path);
                int      i    = 1;
                while (System.IO.File.Exists(path))
                {
                    path = Path.Combine(file.Directory.FullName, "{0}_{1}.dust"._Format(Path.GetFileNameWithoutExtension(file.Name), i));
                    i++;
                }
                html.SafeWriteToFile(path);
                return(Json(new { Success = true }));
            }
            catch (Exception ex)
            {
                return(Json(new { Success = false, Message = ex.Message }));
            }
        }
示例#24
0
 public static MvcHtmlString FieldSetFor(Type type, object defaults = null, string legendText = null, object wrapperAttrs = null)
 {
     return(HtmlHelperExtensions.FieldSetFor(null, type, defaults, legendText, wrapperAttrs));
 }
示例#25
0
        private IEnumerable<Employer> getSortedList(EmployerSearchViewModel esvm, out string sortedColumn, out string currentSortedColumn, out HtmlHelperExtensions.SortDirection sortDirection)
        {
            if (esvm.SortedColumn==null || esvm.SortedColumn =="")

            //no new sorting requested
            {
                if (esvm.CurrentSortedColumn == null || esvm.CurrentSortedColumn == "")
                //there is no current sorting
                {
                    sortedColumn = null;
                    currentSortedColumn = "ID";
                    sortDirection = HtmlHelperExtensions.SortDirection.Ascending;
                    return esvm.ResultSet.OrderBy(cc => cc.ID);
                }
                else
                //there is a current sorting
                {
                    currentSortedColumn = esvm.CurrentSortedColumn;
                    sortedColumn = null;
                    sortDirection = esvm.SortDirection;
                    if (esvm.SortDirection == HtmlHelperExtensions.SortDirection.Ascending || esvm.SortDirection == null)
                        return esvm.ResultSet.OrderBy(cc => (GetPropertyValue(cc, esvm.CurrentSortedColumn)));
                    else
                        return esvm.ResultSet.OrderByDescending(cc => (GetPropertyValue(cc, esvm.CurrentSortedColumn)));
                }

            }
            else
            //a new sorting is requested
            {
                if (esvm.SortedColumn == null || esvm.SortedColumn == "")
                //currently no sorting
                {
                    currentSortedColumn = esvm.SortedColumn;
                    sortedColumn = null;
                    sortDirection = HtmlHelperExtensions.SortDirection.Ascending;
                    return esvm.ResultSet.OrderBy(cc => (GetPropertyValue(cc, esvm.SortedColumn)));
                }
                else
                //already a sortimg
                {
                    if (esvm.SortedColumn == esvm.CurrentSortedColumn)
                    // toggle sorting asc /desc
                    {
                        currentSortedColumn = esvm.CurrentSortedColumn;
                        sortedColumn = null;
                        sortDirection = esvm.SortDirection == HtmlHelperExtensions.SortDirection.Ascending ?  HtmlHelperExtensions.SortDirection.Descending : HtmlHelperExtensions.SortDirection.Ascending;
                        if (sortDirection == HtmlHelperExtensions.SortDirection.Ascending)
                            return esvm.ResultSet.OrderBy(cc => (GetPropertyValue(cc, esvm.SortedColumn)));
                        else
                            return esvm.ResultSet.OrderByDescending(cc => (GetPropertyValue(cc, esvm.SortedColumn)));
                    }
                    else
                    //new sorting field
                    {
                        currentSortedColumn = esvm.SortedColumn;
                        sortedColumn = null;
                        sortDirection = HtmlHelperExtensions.SortDirection.Ascending;
                        return esvm.ResultSet.OrderBy(cc => (GetPropertyValue(cc, esvm.SortedColumn)));
                    }
                }
            }
        }
        public VersionsItem Versions(string registername, string parantRegister, string itemname)
        {
            // Finn versjonsgruppen
            Models.Version versjonsGruppe = new Models.Version();
            if (parantRegister != null)
            {
                var queryResultsRegisteritem = from ri in _dbContext.RegisterItems
                                               where ri.register.seoname == registername && ri.register.parentRegister.seoname == parantRegister &&
                                               ri.seoname == itemname
                                               select ri.versioning;

                versjonsGruppe = queryResultsRegisteritem.FirstOrDefault();
            }
            else
            {
                var queryResultsRegisteritem = from ri in _dbContext.RegisterItems
                                               where ri.register.seoname == registername && ri.register.parentRegister == null &&
                                               ri.seoname == itemname
                                               select ri.versioning;

                versjonsGruppe = queryResultsRegisteritem.FirstOrDefault();
            }
            Guid?versjonsGruppeId = versjonsGruppe.systemId;

            Guid currentVersionId = versjonsGruppe.currentVersion;
            List <Models.RegisterItem> suggestionsItems = new List <Models.RegisterItem>();
            List <Models.RegisterItem> historicalItems  = new List <Models.RegisterItem>();

            // finne Gjeldende versjon i versjonsgruppen
            var queryResults = from ri in _dbContext.RegisterItems
                               where ri.systemId == currentVersionId
                               select ri;

            Models.RegisterItem currentVersion = queryResults.FirstOrDefault();

            // Finne alle versjoner som står som forslag
            queryResults = from ri in _dbContext.RegisterItems
                           where ri.register.seoname == registername &&
                           ri.versioningId == versjonsGruppeId &&
                           (ri.status.value == "Submitted"
                           //|| ri.status.value == "Proposal"
                           //|| ri.status.value == "InProgress"
                            || ri.status.value == "Draft")
                           //|| ri.status.value == "Accepted"
                           //|| ri.status.value == "Experimental"
                           //|| ri.status.value == "Candidate"
                           select ri;

            foreach (Models.RegisterItem item in queryResults.ToList())
            {
                if ((item.statusId != "Submitted") || HtmlHelperExtensions.AccessRegisterItem(item))
                {
                    suggestionsItems.Add(item);
                }
            }


            //finne alle historiske versjoner
            var queryResultsHistorical = from ri in _dbContext.RegisterItems
                                         where ri.register.seoname == registername &&
                                         ri.versioningId == currentVersion.versioningId &&
                                         (ri.status.value == "Superseded" ||
                                          ri.status.value == "Retired")
                                         //ri.status.value == "Deprecated"
                                         select ri;

            if (queryResultsHistorical.Any())
            {
                foreach (Models.RegisterItem item in queryResultsHistorical.ToList())
                {
                    historicalItems.Add(item);
                }
            }

            return(new VersionsItem
            {
                currentVersion = currentVersion,
                historical = historicalItems,
                suggestions = suggestionsItems
            });
        }
 public double Percent(int numberOf)
 {
     return(HtmlHelperExtensions.Percent(numberOf, NumberOfItems));
 }
示例#28
0
 protected internal static MvcHtmlString FieldSetFor(dynamic obj, string legendText, object wrapperAttrs = null, bool setValues = false)
 {
     return(HtmlHelperExtensions.FieldsetFor(null, obj, legendText, wrapperAttrs, setValues));
 }
示例#29
0
        public static Event CreateEvent(string format, params object[] args)
        {
            var ev = new Event()
            {
                Time = DateTime.UtcNow
            };

            ev.PlainText = string.Format(format, args);
            var           orgArgs            = new List <object>(args);
            List <object> alreadyAddedEvents = new List <object>();

            for (var i = 0; i < args.Length; i++)
            {
                bool dontDuplicate = false; // set to true for args that have their own Event table in DB, e.g. accounts, factions, clans, planets
                var  arg           = args[i];
                if (arg == null)
                {
                    continue;
                }
                var  url = Global.UrlHelper();
                bool eventAlreadyExists = alreadyAddedEvents.Contains(arg);

                if (arg is Account)
                {
                    var acc = (Account)arg;
                    args[i] = HtmlHelperExtensions.PrintAccount(null, acc);
                    if (!eventAlreadyExists)
                    {
                        if (acc.AccountID != 0)
                        {
                            if (!ev.EventAccounts.Any(x => x.AccountID == acc.AccountID))
                            {
                                ev.EventAccounts.Add(new EventAccount()
                                {
                                    AccountID = acc.AccountID
                                });
                            }
                        }
                        else if (!ev.EventAccounts.Any(x => x.Account == acc))
                        {
                            ev.EventAccounts.Add(new EventAccount()
                            {
                                Account = acc
                            });
                        }
                        dontDuplicate = true;
                    }
                }
                else if (arg is Clan)
                {
                    var clan = (Clan)arg;
                    args[i] = HtmlHelperExtensions.PrintClan(null, clan);
                    if (!eventAlreadyExists)
                    {
                        if (clan.ClanID != 0)
                        {
                            ev.EventClans.Add(new EventClan()
                            {
                                ClanID = clan.ClanID
                            });
                        }
                        else
                        {
                            ev.EventClans.Add(new EventClan()
                            {
                                Clan = clan
                            });
                        }
                        dontDuplicate = true;
                    }
                }
                else if (arg is Planet)
                {
                    var planet = (Planet)arg;
                    args[i] = HtmlHelperExtensions.PrintPlanet(null, planet);
                    if (!eventAlreadyExists)
                    {
                        if (planet.PlanetID != 0)
                        {
                            ev.EventPlanets.Add(new EventPlanet()
                            {
                                PlanetID = planet.PlanetID
                            });
                        }
                        else
                        {
                            ev.EventPlanets.Add(new EventPlanet()
                            {
                                Planet = planet
                            });
                        }
                        dontDuplicate = true;
                    }
                }
                else if (arg is SpringBattle)
                {
                    var bat = (SpringBattle)arg;
                    args[i] = string.Format("<a href='{0}'>B{1}</a>",
                                            url.Action("Detail", "Battles", new { id = bat.SpringBattleID }),
                                            bat.SpringBattleID); //todo no proper helper for this
                    if (!eventAlreadyExists)
                    {
                        if (bat.SpringBattleID != 0)
                        {
                            ev.EventSpringBattles.Add(new EventSpringBattle()
                            {
                                SpringBattleID = bat.SpringBattleID
                            });
                        }
                        else
                        {
                            ev.EventSpringBattles.Add(new EventSpringBattle()
                            {
                                SpringBattle = bat
                            });
                        }

                        foreach (Account acc in bat.SpringBattlePlayers.Where(sb => !sb.IsSpectator).Select(x => x.Account).Where(y => !ev.EventAccounts.Any(z => z.AccountID == y.AccountID)))
                        {
                            if (acc.AccountID != 0)
                            {
                                if (!ev.EventAccounts.Any(x => x.AccountID == acc.AccountID))
                                {
                                    ev.EventAccounts.Add(new EventAccount()
                                    {
                                        AccountID = acc.AccountID
                                    });
                                }
                            }
                            else if (!ev.EventAccounts.Any(x => x.Account == acc))
                            {
                                ev.EventAccounts.Add(new EventAccount()
                                {
                                    Account = acc
                                });
                            }
                        }
                        dontDuplicate = true;
                    }
                }
                else if (arg is Faction)
                {
                    var fac = (Faction)arg;
                    args[i] = HtmlHelperExtensions.PrintFaction(null, fac, false);
                    if (!eventAlreadyExists)
                    {
                        if (fac.FactionID != 0)
                        {
                            ev.EventFactions.Add(new EventFaction()
                            {
                                FactionID = fac.FactionID
                            });
                        }
                        else
                        {
                            ev.EventFactions.Add(new EventFaction()
                            {
                                Faction = fac
                            });
                        }
                        dontDuplicate = true;
                    }
                }
                else if (arg is StructureType)
                {
                    var stype = (StructureType)arg;
                    args[i] = HtmlHelperExtensions.PrintStructureType(null, stype);
                }
                else if (arg is FactionTreaty)
                {
                    var tr = (FactionTreaty)arg;
                    args[i] = HtmlHelperExtensions.PrintFactionTreaty(null, tr);
                }
                else if (arg is RoleType)
                {
                    var rt = (RoleType)arg;
                    args[i] = HtmlHelperExtensions.PrintRoleType(null, rt);
                }

                if (dontDuplicate)
                {
                    alreadyAddedEvents.Add(arg);
                }
            }


            ev.Text = string.Format(format, args);
            try {
                var tas = nightwatch.Tas;
                if (tas != null)
                {
                    foreach (var clan in orgArgs.OfType <Clan>().Where(x => x != null))
                    {
                        tas.Say(TasClient.SayPlace.Channel, clan.GetClanChannel(), ev.PlainText, true);
                    }
                    foreach (var faction in orgArgs.OfType <Faction>().Where(x => x != null))
                    {
                        tas.Say(TasClient.SayPlace.Channel, faction.Shortcut, ev.PlainText, true);
                    }
                }
            } catch (Exception ex) {
                Trace.TraceError("Error sending event to channels: {0}", ex);
            }

            return(ev);
        }
示例#30
0
        public override void ExecuteResult(ControllerContext context)
        {
            HttpResponseBase response = context.HttpContext.Response;

            response.Write(HtmlHelperExtensions.FieldsetFor(null, Data, Legend));
        }
示例#31
0
 protected internal static MvcHtmlString InputsFor(Type type, object defaults = null, object wrapperAttrs = null)
 {
     return(HtmlHelperExtensions.InputsFor(null, type, defaults, wrapperAttrs));
 }