コード例 #1
0
    protected void btnCreatePublish_Click(object sender, EventArgs e)
    {
        Category category = (currentSelectedNode == null ? null : NewsManager.GetCategory(currentSelectedNode));

        string catId = (category == null) ? string.Empty : category.Id;

        if (category == null)
        {
            ((IFeedback)Master).SetError(GetType(), ErrorSelectCategory);
        }
        else if (!SecurityHelper.CheckWriteAccess(Page.User.Identity.Name, category.Id))
        {
            ((IFeedback)Master).SetError(GetType(), ErrorCategoryPermission);
        }
        else
        {
            Item            = CreateItem(category, ddlOwner.SelectedItem.Text, txtTitle.Text, txtDescription.Content, ItemApprovalStatusManager.GetStatusByName("Published"));
            Item.UpdateDate = DateTime.Now.AddSeconds(4.0);
            NewVersionId    = SaveVersionItem(Item.Id, VersionManager.GetVersionNumber(VersionType.New, string.Empty), SaveType.CheckIn);
            VersionItem vi = VersionManager.GetVersionById(NewVersionId);
            vi.VersionNumber = VersionManager.GetVersionNumber(VersionType.Major, vi.ItemId);
            VersionManager.UpdateVersionItem(vi);
            NewsManager.UpdateItem(Item);
            CheckInVersion();
            Navigation.Communication_News().Redirect(this);
        }
    }
コード例 #2
0
ファイル: Version.cs プロジェクト: Rohanyadav028/Combot
        public override void ParseCommand(CommandMessage command)
        {
            Command foundCommand = Commands.Find(c => c.Triggers.Contains(command.Command));

            if (foundCommand.Name == "Version Check")
            {
                string        nick     = (command.Arguments.ContainsKey("Nickname")) ? command.Arguments["Nickname"].ToString() : command.Nick.Nickname;
                List <string> nickList = nick.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
                for (int i = 0; i < nickList.Count; i++)
                {
                    VersionItem tmpItem = new VersionItem();
                    tmpItem.Location    = command.Location;
                    tmpItem.MessageType = command.MessageType;
                    tmpItem.Nick        = nickList[i];
                    listLock.EnterWriteLock();
                    if (versionList.Exists(item => item.Nick == nickList[i]))
                    {
                        versionList.RemoveAll(item => item.Nick == nickList[i]);
                    }
                    versionList.Add(tmpItem);
                    listLock.ExitWriteLock();
                    Bot.IRC.Command.SendCTCPMessage(nickList[i], "VERSION");
                }
            }
        }
コード例 #3
0
ファイル: VersionHelper.cs プロジェクト: jobhesc/u9_jsdy
        private static List <VersionItem> BuildLocalDownloadfiles(VersionItem[] remoteDownloadfiles, string baseUrl)
        {
            List <VersionItem> localDownloadfiles = new List <VersionItem>();
            ProgressActor      progress           = new ProgressActor();

            progress.Show();
            try
            {
                // 创建下载目录
                string localPatchPath = BuildPatchPath();
                // 下载文件
                VersionItem localDownloadfile = null;
                foreach (VersionItem remoteDownloadfile in remoteDownloadfiles)
                {
                    localDownloadfile = DownloadPatch(remoteDownloadfile, baseUrl, localPatchPath, progress);
                    if (localDownloadfile != null)
                    {
                        localDownloadfiles.Add(localDownloadfile);
                    }
                }
                return(localDownloadfiles);
            }
            finally
            {
                progress.Hide();
            }
        }
コード例 #4
0
        protected VersionPair CreateVersionPair(Assembly bundleAssembly, VersionCode bundleCode)
        {
            VersionCode versionCode = CreateVersionCode(bundleCode);

            VersionItem versionItem = CreateVersionItem(bundleAssembly, bundleCode);

            return(new VersionPair(versionCode, versionItem));
        }
コード例 #5
0
        public VersionItem CreateVersionItem(Assembly bundleAssembly, VersionCode versionCode)
        {
            VersionName versionName = CreateVersionName(versionCode);

            VersionItem versionItem = BundleSourceFor(bundleAssembly, versionName);

            return(versionItem);
        }
コード例 #6
0
    protected void BindMetaData()
    {
        //get the latest version.
        VersionItem versionItem = VersionManager.GetVersionByGroupId(GroupId);
        //pass the Item object to display the Meta Info
        Item newsItem = NewsManager.GetItem(versionItem.ItemId);

        ctrlVersionHistory.DisplayItemMeta(newsItem.Title, newsItem.Author, newsItem.Category.Name);
    }
コード例 #7
0
        private void __versionItems_AfterSelect(object sender, TreeViewEventArgs e)
        {
            VersionItem v = e.Node.Tag as VersionItem;

            if (v == null)
            {
                return;
            }

            if (v.Value is String)
            {
                __value.Text = (String)v.Value;
            }
            else if (v.Value is Byte[])
            {
                StringBuilder sb = new StringBuilder();
                foreach (Byte b in v.Value as Byte[])
                {
                    sb.Append(b.ToString("X2"));
                    sb.Append(' ');
                }

                __value.Text = sb.ToString();
            }
            else if (v.Value is StringDict)
            {
                StringBuilder sb = new StringBuilder();

                StringDict d = v.Value as StringDict;
                foreach (String key in d.Keys)
                {
                    sb.Append(key);
                    sb.Append(" - ");
                    sb.Append(d[key]);
                    sb.Append("\r\n");
                }

                String t = sb.ToString();
                if (t.Length > 1)
                {
                    t = t.Left(t.Length - 1);
                }

                __value.Text = t;
            }
            else if (v.Value != null)
            {
                __value.Text = v.Value.ToString();
            }
            else
            {
                __value.Text = "ValueLength: " + v.ValueLength.ToString();
            }
        }
コード例 #8
0
    /// <summary>
    /// Checks in the current version which is been edited.
    /// </summary>
    protected void CheckInVersion()
    {
        string versionId = VersionId;

        if (string.IsNullOrEmpty(versionId))
        {
            versionId = NewVersionId;
        }
        VersionItem versionItem = VersionManager.GetVersionById(versionId);

        VersionManager.CheckInVersion(versionItem.Id);
    }
コード例 #9
0
        private void ScaleCards(GridView gridView)
        {
            //Debug.WriteLine("Scale cards");
            try
            {
                double midWayPoint = ActualWidth / 2;

                foreach (var item in gridView.Items)
                {
                    var listviewitem = item as VersionItem;

                    if (gridView.ContainerFromItem(listviewitem) is GridViewItem container)
                    {
                        var templateRoot = (FrameworkElement)container.ContentTemplateRoot;

                        if (templateRoot != null)
                        {
                            try
                            {
                                var transform = templateRoot.TransformToVisual(gridContainer);
                                var positionInScrollViewer = transform.TransformPoint(new Point(0, 0));

                                double difference    = midWayPoint - (positionInScrollViewer.X + ((itemwidth - 30) / 2));
                                double differenceAbs = Math.Abs(midWayPoint - (positionInScrollViewer.X + ((itemwidth - 30) / 2)));
                                double divideBy      = Math.Pow(1 - (differenceAbs / 20000), 3);

                                if (templateRoot.Opacity != 0)
                                {
                                    templateRoot.Opacity = Math.Max(Math.Pow(1 - (differenceAbs / 2000), 3), 0.1);
                                }

                                templateRoot.RenderTransform.SetValue(CompositeTransform.ScaleXProperty, divideBy);
                                templateRoot.RenderTransform.SetValue(CompositeTransform.ScaleYProperty, divideBy);

                                templateRoot.IsHitTestVisible = templateRoot.Opacity > 0.95;

                                if (templateRoot.Opacity > 0.95)
                                {
                                    selectedVersion = listviewitem;
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                }
            }
            catch
            {
                Debug.WriteLine("Error in scale cards");
            }
        }
コード例 #10
0
        private VersionItem GetStringVersionItem(PinnedBufferReader reader, ref UInt32 padding)
        {
            VersionItem result = new VersionItem();

            result.Item  = reader.BytesToStructure <WinNT.Resource.V_STRING>(ref padding);
            result.szKey = reader.BytesToStringUni(ref padding);

            padding = NativeMethods.AlignToInt(padding);

            result.Value = reader.BytesToStringUni(padding);
            padding     += result.Item.Value.ValueLength;

            return(result);
        }
コード例 #11
0
        public void shouldReturnLastNumberOfVersion()
        {
            IDbSet <version>   versionDbSet      = getVersionDbSet();
            IRepositoryContext repositoryContext = Substitute.For <IRepositoryContext>();

            repositoryContext.Versions.Returns(versionDbSet);
            var versionEngine = new VersionEngine(repositoryContext);


            VersionItem versionItem = versionEngine.GetNewestVersion();


            Assert.AreNotEqual("-1", versionItem.Version);
            Assert.AreEqual("1.2", versionItem.Version);
        }
コード例 #12
0
ファイル: NewsManager.cs プロジェクト: sherryswall/busiblocks
        public static int CountItems(IList <Item> items, string username)
        {
            if (items != null && items.Count > 0)
            {
                IList <VersionItem> vItems = new List <VersionItem>();
                foreach (Item item1 in items)
                {
                    VersionItem v = VersionManager.GetVersionByItemId(item1.Id);
                    if (v != null)
                    {
                        VersionItem         latest   = new VersionItem();
                        IList <VersionItem> versions = VersionManager.GetAllVersions(v.GroupId);

                        foreach (VersionItem version in versions)
                        {
                            if (VersionManager.IsLatestVersion(version.Id))
                            {
                                latest = version;
                            }
                        }
                        if (latest == null)
                        {
                            if (SecurityHelper.CanUserEdit(username, item1.Category.Id) || SecurityHelper.CanUserContribute(username, item1.Category.Id))
                            {
                                vItems.Add(v);
                            }
                        }
                        else
                        {
                            Item item2 = NewsManager.GetItem(latest.ItemId);
                            if ((SecurityHelper.CanUserView(username, item2.Category.Id) && item2.ApprovalStatus.Name == "Published") ||
                                (SecurityHelper.CanUserContribute(username, item2.Category.Id) && item2.Owner.ToLower() == username.ToLower()) ||
                                (SecurityHelper.CanUserEdit(username, item2.Category.Id)))
                            {
                                if (item1.Category.Id == item2.Category.Id)
                                {
                                    vItems.Add(v);
                                }
                            }
                        }
                    }
                }
                IEnumerable <VersionItem> disItems = vItems.Distinct(new KeyEqualityComparer <VersionItem>(x => x.GroupId));

                return(disItems.Count());
            }
            return(0);
        }
コード例 #13
0
        /// <summary>Получить элемент версии в сохранённый в бинарном виде</summary>
        /// <param name="reader">Allocated bytes in memory</param>
        /// <param name="item">Version table</param>
        /// <param name="padding">Отступ от начала массива</param>
        /// <returns>Элемент версии</returns>
        private VersionItem GetBinaryVersionItem(PinnedBufferReader reader, VersionTable item, ref UInt32 padding)
        {
            VersionItem result = new VersionItem();

            if (item.szKey == "Translation")
            {
                result.Value = reader.BytesToStructure <Translation>(padding);
                String text = result.Value.ToString();
            }
            else
            {
                result.Value = reader.GetBytes(padding, item.Table.wValueLength);
            }
            padding += item.Table.wValueLength;

            return(result);
        }
コード例 #14
0
    private VersionItem GetPublishedVersion(string VersionId)
    {
        string groupId                       = VersionManager.GetVersionById(VersionId).GroupId;
        string aprrovalPubId                 = ItemApprovalStatusManager.GetStatusByName("Published").Id;
        IList <VersionItem> versions         = VersionManager.GetPublishedVersions(groupId);
        VersionItem         publishedVersion = new VersionItem();

        foreach (VersionItem version in versions)
        {
            Item newsItem = NewsManager.GetItem(version.ItemId);
            if (newsItem.ApprovalStatus.Id.Equals(aprrovalPubId))
            {
                publishedVersion = version;
                break;
            }
        }
        return(publishedVersion);
    }
コード例 #15
0
 public void DownLoadVersion(VersionItem ver, Main loader)
 {
     updateVersion                   = new UpdateVersion();
     updateVersion.Version           = ver.strVersion;
     updateVersion.VersionMax        = ver.strVersionMax;
     updateVersion.File              = new UpdateFile();
     updateVersion.File.bHashChecked = false;
     updateVersion.File.Loadbytes    = 0;
     updateVersion.File.strFile      = ver.zip.fileName;
     if (File.Exists(ResMng.GetUpdateTmpPath() + "/" + ver.zip.fileName))
     {
         File.Delete(ResMng.GetUpdateTmpPath() + "/" + ver.zip.fileName);
     }
     updateVersion.File.strLocalPath = ResMng.GetUpdateTmpPath() + "/" + ver.zip.fileName;
     updateVersion.File.Totalbytes   = ver.zip.size;
     updateVersion.File.strMd5       = ver.zip.Md5;
     loader.StartDownLoad(updateVersion);
 }
コード例 #16
0
    //应用一个版本
    public void ApplyVersion(VersionItem ver, Main loader)
    {
        Main.Ins.DialogStateManager.ChangeState(Main.Ins.DialogStateManager.UpdateDialogState);
        UpdateDialogState.Instance.SetNotice(ver.strVersionMax,
                                             () =>
        {
            UpdateDialogState.Instance.DisableAcceptBtn();
            //如果之前有更新进度
            if (updateVersion != null)
            {
                if (updateVersion.Version == ver.strVersion && updateVersion.VersionMax == ver.strVersionMax)
                {
                    //不管更新包大小是否超过剩余磁盘空间
                    //long freeSpace = AppInfo.GetFreeSpace();
                    //if (updateVersion.File.Totalbytes - updateVersion.File.Loadbytes > freeSpace)
                    //{

                    //}
                    //弹一个界面,让玩家决定是否继续更新
                    if (updateVersion.File.Totalbytes != 0)
                    {
                        UpdateDialogState.Instance.UpdateProgress((float)updateVersion.File.Loadbytes / (float)updateVersion.File.Totalbytes, "0");
                    }
                    loader.StartDownLoad(updateVersion);
                }
                else
                {
                    //说明自从上次升级一半,服务端又升级了,丢弃掉之前升级的内容
                    CleanVersion();
                    DownLoadVersion(ver, loader);
                }
            }
            else
            {
                DownLoadVersion(ver, loader);
            }
        }
                                             ,
                                             () =>
        {
            //直接进入游戏
            Main.Ins.GameStart();
        });
    }
コード例 #17
0
    protected void btnApprove_Click(object sender, EventArgs e)
    {
        if (Item.ApprovalStatus.Id == ItemApprovalStatusManager.GetForEditApprovalStatus().Id)
        {
            Item.ApprovalStatus = ItemApprovalStatusManager.GetForApprovalStatus();
        }
        else if (Item.ApprovalStatus.Id == ItemApprovalStatusManager.GetForApprovalStatus().Id)
        {
            Item.ApprovalStatus = ItemApprovalStatusManager.GetApprovalStatus();
        }

        Item.ApprovalStatus = ItemApprovalStatusManager.GetApprovalStatus();
        Item.UpdateDate     = DateTime.Now;
        //Versioning
        //update the version item as well.
        //if person is approver only then change the major/minor version for publishing.
        if (Request.QueryString.Get("mode") == "approve")
        {
            VersionType versionType = VersionType.Draft;

            //if trEditDetails not visible then this is the first publish!
            if (trEditDetails.Visible == true)
            {
                if (!string.IsNullOrEmpty(rblEditDetails.SelectedValue))
                {
                    versionType = (rblEditDetails.SelectedValue == "major") ? VersionType.Major : VersionType.Minor;
                }
            }
            else
            {
                versionType = VersionType.Major;
            }

            VersionItem approveVersion = VersionManager.GetVersionById(VersionId);
            approveVersion.VersionNumber = VersionManager.GetVersionNumber(versionType, approveVersion.ItemId);

            VersionManager.UpdateVersionItem(approveVersion);
        }
        NewsManager.UpdateItem(Item);
        Navigation.Communication_News().Redirect(this);
    }
コード例 #18
0
ファイル: PDAConfig.cs プロジェクト: jobhesc/u9_jsdy
        /// <summary>
        /// 获取补丁下载信息
        /// </summary>
        /// <returns></returns>
        public static List <VersionItem> GetPatchDownloads()
        {
            XmlElement downloadFilesNode = GetNode("/PDAService/PatchVersion/DownloadFiles");

            if (downloadFilesNode == null)
            {
                return(null);
            }
            string             version      = GetPatchVersion();
            List <VersionItem> versionItems = new List <VersionItem>();
            VersionItem        versionItem  = null;

            foreach (XmlElement downloadFileNode in downloadFilesNode)
            {
                versionItem = new VersionItem();
                versionItem.DownloadFile = downloadFileNode.InnerText;
                versionItem.InstallStyle = downloadFileNode.Attributes["mode"].Value;
                versionItem.Version      = version;
                versionItems.Add(versionItem);
            }
            return(versionItems);
        }
コード例 #19
0
    protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
    {
        IList <ViewStatusGridItem> items = new List <ViewStatusGridItem>();
        IList <User> totalUsers          = GetTotalUsers(NewsManager.GetItem(ItemId).Category.Id);

        foreach (User user in totalUsers)
        {
            ViewStatusGridItem item = new ViewStatusGridItem();
            item.User        = user;
            item.DisplayName = Utilities.GetDisplayUserName(user.Name);
            VersionItem publishedVersionItem = PublishedVersion;
            Item        newsItem             = NewsManager.GetItem(publishedVersionItem.ItemId);
            item.ViewStatus = Nothing;

            TrafficLightStatus tflStatus = NewsManager.GetTrafficLight(user.Name, newsItem);

            item.TrafficLight = Utilities.GetTrafficLightImageTag(tflStatus.RequiresAck, (tflStatus.Acknowledged || tflStatus.Viewed));
            items.Add(item);
        }

        RadGrid1.DataSource = items;
    }
コード例 #20
0
ファイル: Version.cs プロジェクト: Rohanyadav028/Combot
 public void HandleVersionResponse(object sender, CTCPMessage message)
 {
     if (Enabled &&
         !Bot.ServerConfig.NickBlacklist.Contains(message.Sender.Nickname) &&
         !NickBlacklist.Contains(message.Sender.Nickname))
     {
         if (message.Command == "VERSION")
         {
             listLock.EnterReadLock();
             VersionItem versionItem = versionList.Find(item => item.Nick.ToLower() == message.Sender.Nickname.ToLower());
             listLock.ExitReadLock();
             if (versionItem != null)
             {
                 string verResponse = string.Format("[{0}] Using version: {1}", versionItem.Nick, message.Arguments);
                 SendResponse(versionItem.MessageType, versionItem.Location, message.Sender.Nickname, verResponse);
                 listLock.EnterWriteLock();
                 versionList.RemoveAll(item => item.Nick == versionItem.Nick);
                 listLock.ExitWriteLock();
             }
         }
     }
 }
コード例 #21
0
    public static List <VersionItem> ReadVersionJson(string json)
    {
        JsonData           jd = LitJson.JsonMapper.ToObject(json);
        List <VersionItem> v  = new List <VersionItem>();

        for (int i = 0; i < jd.Count; i++)
        {
            VersionItem it = new VersionItem();
            it.strFilelist   = jd[i]["strFilelist"].ToString();
            it.strVersion    = jd[i]["strVersion"].ToString();
            it.strVersionMax = jd[i]["strVersionMax"].ToString();
            if (jd[i]["zip"] != null)
            {
                it.zip          = new UpdateZip();
                it.zip.fileName = jd[i]["zip"]["fileName"].ToString();
                it.zip.Md5      = jd[i]["zip"]["Md5"].ToString();
                it.zip.size     = long.Parse(jd[i]["zip"]["size"].ToString());
            }
            v.Add(it);
        }
        return(v);
    }
コード例 #22
0
    private void BindItem()
    {
        try
        {
            Item item = NewsManager.GetItem(Item.Id);

            lblPageHeading.Text = Item.Title;
            lblAuthor.Text      = Item.Author;
            lblDate.Text        = Utilities.GetDateTimeForDisplay(Item.NewsDate);
            txtDetails.Text     = Item.Description;

            if (!Item.RequiresAck)
            {
                ackText.Visible = false;
                // If this page has the Approval menu, then don't set it as viewed.
                if (!approveFooter.Visible)
                {
                    AuditManager.Audit(Page.User.Identity.Name, Item.Id, AuditRecord.AuditAction.Viewed);
                }
            }

            VersionItem versionItem = VersionManager.GetVersionById(VersionId);

            if (versionItem != null)
            {
                int    index            = versionItem.VersionNumber.IndexOf(".", versionItem.VersionNumber.IndexOf(".") + 1);
                string publishedVersion = versionItem.VersionNumber.Substring(0, index);
                lnkVersion.Text        = "Version&nbsp;" + versionItem.VersionNumber;
                lblVersionNumber.Text  = publishedVersion;
                lnkVersion.NavigateUrl = Navigation.Communication_NewsVersionHistory(versionItem.GroupId).GetServerUrl(true);
            }
        }
        catch (Exception exception)
        {
            throw exception;
            ((IFeedback)Master).SetException(GetType(), exception);
        }
    }
コード例 #23
0
        private static VersionItem ReadVersionItem(XmlReader reader)
        {
            var result = new VersionItem();

            reader.ReadStartElement("VersionItem");

            reader.ReadStartElement("Location");
            result.Location = reader.ReadContentAsString();
            reader.ReadEndElement();

            reader.ReadStartElement("Path");
            if (reader.NodeType == XmlNodeType.Text)
            {
                result.Path = reader.ReadContentAsString();
                reader.ReadEndElement();
            }
            else
            {
                result.Path = String.Empty;
            }

            reader.ReadStartElement("InstallAction");
            result.InstallAction = (InstallAction)Enum.Parse(typeof(InstallAction), reader.ReadContentAsString());
            reader.ReadEndElement();

            reader.ReadStartElement("VersionNumberString");
            result.VersionNumberString = reader.ReadContentAsString();
            reader.ReadEndElement();

            reader.ReadStartElement("Base64Hash");
            result.Base64Hash = reader.ReadContentAsString();
            reader.ReadEndElement();

            reader.ReadEndElement();

            return(result);
        }
コード例 #24
0
        internal ListObjectVersionResponse(ListObjectsArgs args, Tuple <ListVersionsResult, List <VersionItem> > objectList, IObserver <VersionItem> obs)
        {
            this.ItemObservable = obs;
            string marker = string.Empty;

            foreach (VersionItem item in objectList.Item2)
            {
                this.BucketObjectsLastItem = item;
                if (objectList.Item1.EncodingType == "url")
                {
                    item.Key = HttpUtility.UrlDecode(item.Key);
                }
                this.ItemObservable.OnNext(item);
            }
            if (objectList.Item1.NextMarker != null)
            {
                if (objectList.Item1.EncodingType == "url")
                {
                    NextMarker = HttpUtility.UrlDecode(objectList.Item1.NextMarker);
                }
                else
                {
                    NextMarker = objectList.Item1.NextMarker;
                }
            }
            else if (this.BucketObjectsLastItem != null)
            {
                if (objectList.Item1.EncodingType == "url")
                {
                    NextMarker = HttpUtility.UrlDecode(this.BucketObjectsLastItem.Key);
                }
                else
                {
                    NextMarker = this.BucketObjectsLastItem.Key;
                }
            }
        }
コード例 #25
0
        private void AddNode(TreeNodeCollection parentNode, VersionItem item)
        {
            String text;

            String mode = item.Mode.ToString();

            if (String.Equals(item.Key, mode, StringComparison.OrdinalIgnoreCase))
            {
                text = item.Key;
            }
            else
            {
                text = mode + " - " + item.Key;
            }

            if (item.Value is String)
            {
                text += " - \"" + (String)item.Value + "\"";
            }
            else
            {
                text += " - Binary";
            }

            TreeNode n = new TreeNode(text)
            {
                Tag = item
            };

            parentNode.Add(n);

            foreach (VersionItem child in item.Children)
            {
                AddNode(n.Nodes, child);
            }
        }
コード例 #26
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Item item = NewsManager.GetItem(ItemId);
            if (item == null)
            {
                throw new ArgumentNullException("item");
            }

            lblAnnouncementName.Text = item.Title;

            VersionItem versionItem = PublishedVersion;

            // Are we acking or viewing?
            if (!item.RequiresAck)
            {
                lblAck.Text    = "Viewed:";
                lblNotAck.Text = "Not Viewed:";
            }

            lblAuthor.Text = item.Author;
            lblDate.Text   = Utilities.GetDateTimeForDisplay(item.NewsDate);


            if (versionItem == null)
            {
                throw new ArgumentNullException("publishedVersion");
            }

            int index = versionItem.VersionNumber.IndexOf(".", versionItem.VersionNumber.IndexOf(".") + 1);
            lblVersionNumber.Text = versionItem.VersionNumber.Substring(0, index);

            BindViewCount(versionItem.GroupId, versionItem.VersionNumber, item.Category.Id);
        }
    }
コード例 #27
0
    private void SaveItem(Category category, SaveType saveType)
    {
        if (txtTitle.Text.Length >= 100)
        {
            ((IFeedback)Page.Master).SetError(GetType(), "The announcement title must be less than 100 characters long");
            return;
        }
        Item.Category    = category;
        Item.Description = txtDescription.Content;
        Item.Title       = txtTitle.Text;
        Item.Tag         = rblAcknowledge.Items.FindByValue("required").Selected.ToString() + ":" +
                           rblApproval.Items.FindByValue("required").Selected.ToString();
        //Item.Expiry = rdpExpiry.SelectedDate;

        string versionId = VersionId;

        if (string.IsNullOrEmpty(versionId))
        {
            versionId = NewVersionId;
        }

        VersionItem versionItem = VersionManager.GetVersionById(versionId);
        VersionType versionType = VersionType.Draft;

        string GroupID       = Item.Id;
        string VersionNumber = VersionManager.GetVersionNumber(VersionType.New, string.Empty);

        ItemApprovalStatus approvalStatus = new ItemApprovalStatus();

        if (rblApproval.SelectedValue.Equals("required"))
        {
            if (saveType == SaveType.CheckIn)
            {
                approvalStatus = ItemApprovalStatusManager.GetDraftStatus();
            }
            else if (saveType == SaveType.Publish)
            {
                approvalStatus = (Item.Author.Equals(Utilities.GetUserName(Page.User.Identity.Name)) == true) ?
                                 ItemApprovalStatusManager.GetForApprovalStatus() : Item.ApprovalStatus = ItemApprovalStatusManager.GetForEditApprovalStatus();
            }
            else
            {
                approvalStatus = new ItemApprovalStatus()
                {
                    Id = string.Empty, Name = string.Empty
                }
            };
        }
        else
        {
            if (saveType == SaveType.CheckIn)
            {
                approvalStatus = ItemApprovalStatusManager.GetDraftStatus();
            }
            else if (saveType == SaveType.Publish)
            {
                approvalStatus = ItemApprovalStatusManager.GetStatusByName("Published");
                versionType    = (rblEditDetails.SelectedIndex == 0) ? VersionType.Minor : VersionType.Major;
            }
        }

        if (versionItem != null)
        {
            //Create a new record only when saving after editing an existing version
            //if it's being put on hold then don't create a new record
            if (saveType == SaveType.Hold)
            {
                NewsManager.UpdateItem(Item);
            }
            else
            {
                Item = CreateItem(category, ddlOwner.SelectedItem.Text, txtTitle.Text, txtDescription.Content, approvalStatus);
            }
            GroupID       = versionItem.GroupId;
            VersionNumber = VersionManager.GetVersionNumber(versionType, versionItem.ItemId);
        }
        //this applies to announcements when they don't have any versions previously.
        else
        {
            Item.ApprovalStatus = approvalStatus;
            NewsManager.UpdateItem(Item);
        }
        //save version item only when checkin or publish.
        if (saveType != SaveType.Hold)
        {
            NewVersionId = SaveVersionItem(GroupID, VersionNumber, saveType);
        }
    }
コード例 #28
0
    public void Bind(IList <Category> categories)
    {
        List <Item>         items         = new List <Item>();
        List <NewsGridItem> gridItems     = new List <NewsGridItem>();
        string        approvalPublishedId = ItemApprovalStatusManager.GetStatusByName("Published").Id;
        List <string> uniqueGroupIds      = new List <string>();

        foreach (Category category in categories)
        {
            IList <Item> itms = (IList <Item>)NewsManager.GetItems(category, false);
            foreach (Item item in itms)
            {
                if (item.ApprovalStatus.Id.Equals(approvalPublishedId))
                {
                    VersionItem version = VersionManager.GetVersionByItemId(item.Id);
                    if (!uniqueGroupIds.Contains(version.GroupId))
                    {
                        gridItems.Add(new NewsGridItem()
                        {
                            Draft = version, NewsItem = item, TrafficLightUrl = GetUserStatus(item, version.GroupId)
                        });
                        uniqueGroupIds.Add(version.GroupId);
                    }
                }
            }
        }

        //do a 1-1 news & draft comparison to check whether all news have corresponding draft or not if not then add it to the grid. Pressing edit will create its first version.
        foreach (Category category in categories)
        {
            IList <Item> childItems = NewsManager.GetItems(category, false);

            foreach (Item newsItem in childItems)
            {
                VersionItem versionItem = VersionManager.GetVersionByItemId(newsItem.Id);
                if (versionItem == null && newsItem.ApprovalStatus == null)
                {
                    versionItem         = new VersionItem();
                    versionItem.ItemId  = newsItem.Id;
                    versionItem.GroupId = newsItem.Id;
                    gridItems.Add(new NewsGridItem()
                    {
                        Draft = versionItem, NewsItem = newsItem
                    });
                }
            }
        }

        List <NewsGridItem> gridItemsPermission = new List <NewsGridItem>();

        foreach (var gi in gridItems)
        {
            if (gi.NewsItem != null)
            {
                if (SecurityHelper.CanUserView(Page.User.Identity.Name, gi.NewsItem.Category.Id))
                {
                    gridItemsPermission.Add(gi);
                }
            }
        }

        RadGridRead.DataSource = gridItemsPermission;
    }
コード例 #29
0
    private void BindPageEditItem()
    {
        divSaveFunctions.Visible = true;
        btnDelete.Visible        = true;

        VersionItem version = VersionManager.GetVersionById(VersionId);
        Item        item    = (version == null) ? NewsManager.GetItem(ItemId) : NewsManager.GetItem(version.ItemId);

        txtDescription.Content = item.Description;
        txtTitle.Text          = item.Title;
        lblTitle.Text          = item.Title;
        ddlOwner.SelectedIndex = ddlOwner.Items.IndexOf(ddlOwner.Items.FindByText(item.Owner));

        //rdpExpiry.SelectedDate = item.Expiry;
        lnkVersionNumber.Text        = "Version&nbsp;" + ((version == null) ? VersionManager.GetVersionNumber(VersionType.New, string.Empty) : VersionManager.GetVersionNumber(VersionType.Draft, version.ItemId));
        lnkVersionNumber.NavigateUrl = (version == null) ? null : Navigation.Communication_NewsVersionHistory(version.GroupId).GetServerUrl(true);

        // Set the acknowledge radios.
        if (item.RequiresAck)
        {
            rblAcknowledge.Items.FindByValue("required").Selected = true;
            ackReqd.CssClass = "";
            rblAcknowledge.Items.FindByValue("notRequired").Selected = false;
            ackNotReqd.CssClass = "hideElement";
        }
        else
        {
            rblAcknowledge.Items.FindByValue("required").Selected = false;
            ackReqd.CssClass = "hideElement";
            rblAcknowledge.Items.FindByValue("notRequired").Selected = true;
            ackNotReqd.CssClass = "";
        }
        // Set the approval radios.
        if (item.RequiresApproval)
        {
            rblApproval.Items.FindByValue("required").Selected    = true;
            rblApproval.Items.FindByValue("notRequired").Selected = false;
        }
        else
        {
            rblApproval.Items.FindByValue("required").Selected    = false;
            rblApproval.Items.FindByValue("notRequired").Selected = true;
        }

        //pre selecting the major/minor
        if (version == null)
        {
            //rblEditDetails.Items.FindByText("minor").Selected = true;
            trEditDetails.Visible = false;
        }
        else
        {
            //check if there's any published version - true =use the previous severity value else set it to major as first published will always be null.
            Item tempItem = NewsManager.GetPublishedItem(version.GroupId);
            if (tempItem.Id != null)
            {
                if (!string.IsNullOrEmpty(version.EditSeverity))
                {
                    rblEditDetails.Items.FindByValue(version.EditSeverity).Selected = true;
                }
                else
                {
                    rblEditDetails.Items.FindByValue("minor").Selected = true;
                }
            }
            else
            {
                trEditDetails.Visible = false;
            }
        }
        //Load permissions
        pmm.LoadPermissionsView(item.Category.Id, item.Category.Name);

        //if user is approver then show the minor/major option.
        lblPageHeading.Text = TitleEdit;

        //select the approver item only if theres a version existing.
        if (version != null)
        {
            IList <Approver> approvers = ApproverManager.GetApproversByItem(version.Id);
            //count more than one means its a category approval
            if (approvers.Count != 0 && ddlApprovers.Enabled != false)
            {
                if (!string.IsNullOrEmpty(approvers[0].UserId))
                {
                    string ddlValue = MembershipManager.GetUser(approvers[0].UserId).Name;
                    ddlApprovers.Items.FindByText(ddlValue).Selected = true;
                }
                else if (ddlApprovers.Items.Count > 0)
                {
                    ddlApprovers.Items[0].Selected = true;
                }
            }

            bool isAckReq = NewsManager.GetItem(version.ItemId).RequiresAck;
            if (isAckReq)
            {
                BindAcknowledgeCount(version.ItemId, version.GroupId, version.VersionNumber);
                BindViewerCount(null, null);
            }
            else
            {
                BindViewerCount(version.GroupId, version.VersionNumber);
                BindAcknowledgeCount(null, null, null);
            }
        }
    }
コード例 #30
0
        protected void ConfigureProfiles(IEnumerable <VersionPair> versionList, VersionItem defaultProfile)
        {
            Profiles = versionList.ToDictionary(kv => kv.Key, kv => kv.Value);

            DefaultProfile = defaultProfile;
        }