Exemplo n.º 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);
        }
    }
Exemplo n.º 2
0
        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");
                }
            }
        }
Exemplo n.º 3
0
        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();
            }
        }
Exemplo n.º 4
0
        protected VersionPair CreateVersionPair(Assembly bundleAssembly, VersionCode bundleCode)
        {
            VersionCode versionCode = CreateVersionCode(bundleCode);

            VersionItem versionItem = CreateVersionItem(bundleAssembly, bundleCode);

            return(new VersionPair(versionCode, versionItem));
        }
Exemplo n.º 5
0
        public VersionItem CreateVersionItem(Assembly bundleAssembly, VersionCode versionCode)
        {
            VersionName versionName = CreateVersionName(versionCode);

            VersionItem versionItem = BundleSourceFor(bundleAssembly, versionName);

            return(versionItem);
        }
Exemplo n.º 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);
    }
Exemplo n.º 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();
            }
        }
Exemplo n.º 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);
    }
Exemplo n.º 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");
            }
        }
Exemplo n.º 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);
        }
        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);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 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);
        }
Exemplo n.º 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);
    }
Exemplo n.º 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);
 }
Exemplo n.º 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();
        });
    }
Exemplo n.º 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);
    }
Exemplo n.º 18
0
        /// <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);
        }
Exemplo n.º 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;
    }
Exemplo n.º 20
0
 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();
             }
         }
     }
 }
Exemplo n.º 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);
    }
Exemplo n.º 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);
        }
    }
Exemplo n.º 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);
        }
        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;
                }
            }
        }
Exemplo n.º 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);
            }
        }
Exemplo n.º 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);
        }
    }
Exemplo n.º 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);
        }
    }
Exemplo n.º 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;
    }
Exemplo n.º 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);
            }
        }
    }
        protected void ConfigureProfiles(IEnumerable <VersionPair> versionList, VersionItem defaultProfile)
        {
            Profiles = versionList.ToDictionary(kv => kv.Key, kv => kv.Value);

            DefaultProfile = defaultProfile;
        }