Пример #1
0
        public void addTicket([FromForm] Utilisateur utilisateur, [FromForm] string titre, [FromForm] string urlphoto, [FromForm] string description, [FromForm] List <Tag> tags)
        {
            DbContextOptionsBuilder <ContexteBDD> optionsBuilder = new DbContextOptionsBuilder <ContexteBDD>();
            var    one       = ConfigurationManager.ConnectionStrings;
            var    random    = ConfigurationManager.ConnectionStrings["DefaultConnection"];
            string docstring = random.ConnectionString;

            optionsBuilder.UseMySql(docstring);

            using (Models.ContexteBDD dbContext = new Models.ContexteBDD(optionsBuilder.Options))
            {
                Ticket dbTicket = new Ticket();
                dbTicket.auteur      = utilisateur;
                dbTicket.titre       = titre;
                dbTicket.description = description;
                dbTicket.date        = DateTime.Now;
                dbTicket.urlPhoto    = urlphoto;
                dbContext.Tickets.Add(dbTicket);
                foreach (Tag tag in tags)
                {
                    TicketTag ticketTag = new TicketTag();
                    ticketTag.tag     = tag;
                    ticketTag.libelle = tag.libelle;
                    ticketTag.ticket  = dbTicket;
                    //cassable ? A revoir //ticketTag.TicketId = dbTicket.Id;
                    tag.TicketTags.Add(ticketTag);
                    dbTicket.TicketTags.Add(ticketTag);
                }
                dbContext.SaveChanges();
            }
        }
Пример #2
0
        static void Simulate_Capture(ref Inventory_System_API x, int Cicles)
        {
            int       LastCounter = x.GetLastCounter();
            Random    r           = new Random();
            int       counter     = 0;
            TicketTag z           = new TicketTag();

            string[] Contadores = { "AC", "AB", "AC", "JL", "GV", "GH" };
            Console.WriteLine("Start Simulate Capture");

            while (counter < Cicles)
            {
                int rTag = r.Next(LastCounter);
                z = x.LoadTag(rTag);
                try
                {
                    if (!z.Verified)
                    {
                        int max = Convert.ToInt32(z.InventoryQuantity);
                        z.CountQTY        = r.Next(max + r.Next(5));
                        z.ReCountQTY      = r.Next(max + r.Next(5));
                        z.Verified        = true;
                        z.CounterInitials = Contadores[r.Next(Contadores.Count())];
                        z.CountedDate     = DateTime.Now;
                        x.UpdateTag(z);
                        counter++;

                        Console.WriteLine("Ticket Tag Captured: " + rTag.ToString());
                    }
                }
                catch
                { }
            }
            Console.WriteLine("Finish Simulate Capture # of Captured Tags: " + Cicles.ToString());
        }
Пример #3
0
        public void SaveFreeTicketTag(int id, string freeTag)
        {
            if (string.IsNullOrEmpty(freeTag))
            {
                return;
            }

            using (var workspace = WorkspaceFactory.Create())
            {
                var tt = workspace.Single <TicketTagGroup>(x => x.Id == id);
                Debug.Assert(tt != null);
                var tag = tt.TicketTags.FirstOrDefault(x => x.Name.ToLower() == freeTag.ToLower());

                if (tag != null)
                {
                    return;
                }
                tag = new TicketTag {
                    Name = freeTag
                };
                tt.TicketTags.Add(tag);
                workspace.Add(tag);
                workspace.CommitChanges();
                _cacheService.ResetTicketTagCache();
            }
        }
Пример #4
0
        private void OnTicketTagAdded(string obj)
        {
            var cachedTag = AppServices.MainDataContext.SelectedDepartment.TicketTagGroups.Single(
                x => x.Id == SelectedTicketTag.Id);

            Debug.Assert(cachedTag != null);
            var ctag = cachedTag.TicketTags.SingleOrDefault(x => x.Name.ToLower() == CustomTag.ToLower());

            if (ctag == null && cachedTag.SaveFreeTags)
            {
                using (var workspace = WorkspaceFactory.Create())
                {
                    var tt = workspace.Single <TicketTagGroup>(x => x.Id == SelectedTicketTag.Id);
                    Debug.Assert(tt != null);
                    var tag = tt.TicketTags.SingleOrDefault(x => x.Name.ToLower() == CustomTag.ToLower());
                    if (tag == null)
                    {
                        tag = new TicketTag()
                        {
                            Name = CustomTag
                        };
                        tt.TicketTags.Add(tag);
                        workspace.Add(tag);
                        workspace.CommitChanges();
                    }
                }
            }
            DataContext.SelectedTicket.UpdateTag(SelectedTicketTag, new TicketTag {
                Name = CustomTag
            });
            CustomTag = string.Empty;
            InvokeTagUpdated(SelectedTicketTag);
        }
        private void ProcessTicketTags(EntityInfo entityInfo, Ticket ticket)
        {
            object oldTagList;

            entityInfo.OriginalValuesMap.TryGetValue("TagList", out oldTagList);
            if (oldTagList == null || (string)oldTagList != ticket.TagList)
            {
                //if not new, kill all old tags, we'll just make new ones
                if (entityInfo.EntityState != EntityState.Added)
                {
                    this.Context.TicketTags.RemoveRange(this.Context.TicketTags.Where(t => t.TicketId == ticket.TicketId));
                }

                var tagsArr = TicketTag.GetTagsFromString(ticket.TagList);
                if (ticket.TicketTags == null && tagsArr.Length > 0)
                {
                    ticket.TicketTags = new List <TicketTag>();
                }
                foreach (var tag in tagsArr)
                {
                    var tTag = new TicketTag {
                        TagName = tag
                    };
                    ticket.TicketTags.Add(tTag);
                }
            }
        }
Пример #6
0
        public void UpdateTag(TicketTagGroup tagGroup, TicketTag ticketTag)
        {
            Model.SetTagValue(tagGroup.Name, ticketTag.Name);
            if (tagGroup.Numerator != null)
            {
                Model.TicketNumber = "";
                AppServices.MainDataContext.UpdateTicketNumber(Model, tagGroup.Numerator);
            }

            if (ticketTag.AccountId > 0)
            {
                AppServices.MainDataContext.AssignCustomerToTicket(Model,
                                                                   Dao.SingleWithCache <Customer>(x => x.Id == ticketTag.AccountId));
            }

            ClearSelectedItems();

            var tagData = new TicketTagData {
                Action = tagGroup.Action, TagName = tagGroup.Name, TagValue = ticketTag.Name, NumericValue = tagGroup.NumericTags || tagGroup.PriceTags ? Convert.ToDecimal(ticketTag.Name) : 0
            };

            RuleExecutor.NotifyEvent(RuleEventNames.TicketTagSelected,
                                     new
            {
                Ticket = Model,
                tagData.TagName,
                tagData.TagValue,
                tagData.NumericValue,
                TicketTag = Model.Tag
            });

            tagData.PublishEvent(EventTopicNames.TagSelectedForSelectedTicket);
        }
Пример #7
0
        public void UpdateTag(Ticket ticket, TicketTagGroup tagGroup, TicketTag ticketTag)
        {
            ticket.SetTagValue(tagGroup.Name, ticketTag.Name);

            if (tagGroup.FreeTagging && tagGroup.SaveFreeTags)
            {
                SaveFreeTicketTag(tagGroup.Id, ticketTag.Name);
            }

            var tagData = new TicketTagData
            {
                Ticket         = ticket,
                TicketTagGroup = tagGroup,
                TagName        = tagGroup.Name,
                TagValue       = ticketTag.Name
            };

            _applicationState.NotifyEvent(RuleEventNames.TicketTagSelected,
                                          new
            {
                Ticket = ticket,
                tagData.TagName,
                tagData.TagValue,
                NumericValue = tagGroup.IsNumeric ? Convert.ToDecimal(ticketTag.Name) : 0,
                TicketTag    = ticket.GetTagData()
            });
        }
Пример #8
0
        private void OnAddTicketTagExecuted(string obj)
        {
            var ti = new TicketTag {
                Name = Resources.NewTag
            };

            Model.TicketTags.Add(ti);
            TicketTags.Add(new TicketTagViewModel(ti));
        }
        private void OnUpdateFreeTag(string obj)
        {
            var tag = new TicketTag {
                Name = FreeTag
            };

            FreeTag = string.Empty;
            UpdateTicketTag(SelectedTicket, SelectedTicketTagData, tag);
        }
        private void OnAddTicketTagExecuted(string obj)
        {
            var ti = new TicketTag {
                Name = Resources.NewTag
            };

            Model.TicketTags.Add(ti);
            TicketTags.Add(new TicketTagViewModel(ti));
            ti.SortOrder = Model.TicketTags.Any() ? Model.TicketTags.Max(x => x.SortOrder) + 1 : 0;
        }
Пример #11
0
        /// <summary>
        /// Creates the new ticket.
        /// </summary>
        /// <param name="newTicket">The new ticket.</param>
        /// <returns>System.Nullable&lt;System.Int32&gt;.</returns>
        /// <exception cref="RuleException"></exception>
        public int?CreateNewTicket(Ticket newTicket)
        {
            var rnv = new NameValueCollection();

            if (!CheckSecurityForTicketActivity(null, TicketActivity.Create))// don't need to check CreateOnBehalfOf separately
            {
                rnv.Add("noAuth", "User is not authorized to create a ticket");
            }

            var now = DateTime.Now;

            newTicket.CreatedBy          = Security.CurrentUserName;
            newTicket.CreatedDate        = now;
            newTicket.CurrentStatus      = "Active";
            newTicket.CurrentStatusDate  = now;
            newTicket.CurrentStatusSetBy = Security.CurrentUserName;
            newTicket.LastUpdateBy       = Security.CurrentUserName;
            newTicket.LastUpdateDate     = now;

            string[] tagsArr = TagUtility.GetTagsFromString(newTicket.TagList);

            foreach (string tag in tagsArr)
            {
                TicketTag tTag = new TicketTag();
                tTag.TagName = tag;
                newTicket.TicketTags.Add(tTag);
            }

            rnv.Add(ValidateTicketDetailFields(newTicket));// enforce field rules

            if (rnv.Count > 0)
            {
                throw new RuleException(rnv);
            }


            AddAttachmentsToNewTicket(newTicket);
            //comment
            TicketComment openingComment = (!newTicket.Owner.Equals(Security.CurrentUserName, StringComparison.InvariantCultureIgnoreCase)) ?
                                           GetActivityComment(TicketActivity.CreateOnBehalfOf, TicketCommentFlag.CommentNotApplicable, null, newTicket.AssignedTo, newTicket.GetNotificationSubscribers(), Security.GetUserDisplayName(newTicket.Owner)) :
                                           GetActivityComment(TicketActivity.Create, TicketCommentFlag.CommentNotApplicable, null, newTicket.AssignedTo, newTicket.GetNotificationSubscribers());

            newTicket.TicketComments.Add(openingComment);

            int?newTicketId = null;

            if (Repository.CreateTicket(newTicket, true))
            {
                newTicketId = newTicket.TicketId;
            }
            return(newTicketId);
        }
Пример #12
0
        private void tb_TagNo_KeyDown(object sender, KeyEventArgs e)
        {
            //39-> 37<-
            switch (e.KeyValue)
            {
            case 13:
            {
                if (tb_TagNo.Text.Trim() != "")
                {
                    //_tagNo = Convert.ToInt32(tb_TagNo.Text);
                    try
                    {
                        _tagNo = Convert.ToInt32(tb_TagNo.Text);
                    }
                    catch
                    {
                        MessageBox.Show("Invalid Tag No entered", "ERROR");
                        _tagNo        = 0;
                        tb_TagNo.Text = "0";
                    }

                    _tag = x.LoadTag(_tagNo);
                    if (_tag != null)
                    {
                        LoadTagInfo(_tag);
                        tb_CounterInitials.Focus();
                    }
                    else
                    {
                        MessageBox.Show("The Tag was not found.");
                    }
                }
                break;
            }

            case 39:
            {
                NextTag();
                break;
            }

            case 37:
            {
                PrevTag();
                break;
            }
            }
        }
Пример #13
0
        private static TicketTag CreateTag(TicketTag ticketTag)
        {
            var content = JsonConvert.SerializeObject(ticketTag);
            var request = CreateRequest("ticketTag", HttpMethod.Post);

            var dataArray = Encoding.UTF8.GetBytes(content);

            request.ContentLength = dataArray.Length;

            var requestStream = request.GetRequestStream();

            requestStream.Write(dataArray, 0, dataArray.Length);
            requestStream.Close();

            var result = GetObject <TicketTag>(request);

            Tags.Add(result.tag, result);

            return(result);
        }
 private void OnTicketTagSelected(TicketTag obj)
 {
     SelectedTicket.UpdateTag(SelectedTicket.LastSelectedTicketTag, obj);
 }
Пример #15
0
        public Ticket GetNewTicket()
        {
            string details = Page.Request.Form["details"];

            Ticket ticket = null;

            if (Page.IsValid)
            {
                if (!string.IsNullOrEmpty(details))
                {
                    DateTime now  = DateTime.Now;
                    string   user = Page.User.Identity.GetFormattedUserName();
                    ticket          = new Ticket();
                    ticket.Type     = TypeDropDownList.SelectedValue;
                    ticket.Category = CategoryDropDownList.SelectedValue;
                    ticket.Title    = TitleTextBox.Text;
                    ticket.IsHtml   = false;
                    ticket.Details  = details;
                    if (!string.IsNullOrEmpty(PriorityDropDownList.SelectedValue))
                    {
                        ticket.Priority = PriorityDropDownList.SelectedValue;
                    }
                    string[] tags = TagManager.GetTagsFromString(TagPickerControl.TagList);
                    ticket.TagList         = string.Join(",", tags);
                    ticket.AffectsCustomer = AffectsCustomerCheckBox.Checked;
                    ticket.PublishedToKb   = false;
                    ticket.CreatedBy       = user;
                    ticket.CreatedDate     = now;
                    if (CreateOnBehalfTextBox.Checked)
                    {
                        ticket.Owner = OwnerDropDownList.SelectedValue;
                    }
                    else
                    {
                        ticket.Owner = user;
                    }
                    ticket.CurrentStatus      = "Active";
                    ticket.CurrentStatusSetBy = user;
                    ticket.CurrentStatusDate  = now;


                    TicketComment openingComment = new TicketComment();
                    if (CreateOnBehalfTextBox.Checked)
                    {
                        openingComment.CommentEvent = string.Format("created the ticket on behalf of {0}", SecurityManager.GetUserDisplayName(ticket.Owner));
                    }
                    else
                    {
                        openingComment.CommentEvent = string.Format("created the ticket");
                    }
                    openingComment.CommentedBy   = user;
                    openingComment.CommentedDate = now;


                    HttpFileCollection uploadedFiles = Request.Files;

                    for (int i = 0; i < uploadedFiles.Count; i++)
                    {
                        HttpPostedFile userPostedFile = uploadedFiles[i];
                        if (userPostedFile.ContentLength > 0)
                        {
                            TicketAttachment attachment = new TicketAttachment();
                            string           fName      = Path.GetFileName(userPostedFile.FileName);//FileUploader.FileName;

                            attachment.FileName = fName;
                            var description = Page.Request.Form[fName];
                            if (!string.IsNullOrEmpty(description))
                            {
                                if (description.Length > 500)
                                {
                                    attachment.FileDescription = description.Substring(0, 500);
                                }
                                else
                                {
                                    attachment.FileDescription = description;
                                }
                            }
                            attachment.FileSize = userPostedFile.ContentLength;//FileUploader.PostedFile.ContentLength;
                            string mtype = userPostedFile.ContentType;
                            attachment.FileType = (string.IsNullOrEmpty(mtype) ? "application/octet-stream" : mtype);
                            byte[] fileContent = new byte[userPostedFile.ContentLength];
                            userPostedFile.InputStream.Read(fileContent, 0, userPostedFile.ContentLength);//FileUploader.FileBytes;
                            attachment.FileContents = fileContent;
                            ticket.TicketAttachments.Add(attachment);
                        }
                    }

                    ticket.TicketComments.Add(openingComment);

                    foreach (string tag in tags)
                    {
                        TicketTag tTag = new TicketTag();
                        tTag.TagName = tag;
                        ticket.TicketTags.Add(tTag);
                    }
                }
                else
                {
                    lblDetailsRequired.Visible = true;
                }
            }
            return(ticket);
        }
        public bool Save(TicketComment eventComment)
        {
            var details = Request.Form["details"];

            Dictionary <string, KeyValuePair <string, string> > fieldEventTextList = new Dictionary <string, KeyValuePair <string, string> >();//key is simple event test, value is full event text;

            if (TicketTitleEdit.Text != TicketToDisplay.Title)
            {
                fieldEventTextList.Add("changed ticket's title", GetFieldEventValues(TicketToDisplay.Title, TicketTitleEdit.Text));
                TicketToDisplay.Title = TicketTitleEdit.Text;
            }
            if (details != TicketToDisplay.Details)
            {
                fieldEventTextList.Add("changed ticket's details", GetFieldEventValues(string.Empty, string.Empty));
                TicketToDisplay.IsHtml  = false;
                TicketToDisplay.Details = details;
            }
            if (CategoryEdit.Enabled && CategoryEdit.SelectedValue != TicketToDisplay.Category)
            {
                fieldEventTextList.Add("changed ticket's category", GetFieldEventValues(TicketToDisplay.Category, CategoryEdit.SelectedValue));
                TicketToDisplay.Category = CategoryEdit.SelectedValue;
            }
            if (PriorityEdit.Enabled && PriorityEdit.SelectedValue != TicketToDisplay.Priority && !string.IsNullOrEmpty(PriorityEdit.SelectedValue))
            {
                fieldEventTextList.Add("changed ticket's priority", GetFieldEventValues(TicketToDisplay.Priority, PriorityEdit.SelectedValue));
                TicketToDisplay.Priority = PriorityEdit.SelectedValue;
            }
            if (OwnerEdit.Enabled && OwnerEdit.SelectedValue != TicketToDisplay.Owner)
            {
                fieldEventTextList.Add("changed ticket's owner", GetFieldEventValues(TicketToDisplay.Owner, OwnerEdit.SelectedValue));
                TicketToDisplay.Owner = OwnerEdit.SelectedValue;
            }
            if (AffectsCustomerEdit.Checked != TicketToDisplay.AffectsCustomer)
            {
                KeyValuePair <string, string> e = GetFieldEventValues(((TicketToDisplay.AffectsCustomer) ? "Yes" : "No"), ((AffectsCustomerEdit.Checked) ? "Yes" : "No"));
                fieldEventTextList.Add("changed ticket's affects customer flag", e);
                TicketToDisplay.AffectsCustomer = AffectsCustomerEdit.Checked;
            }

            string[] tags       = TagManager.GetTagsFromString(TagPickerEdit.TagList);
            string   newTagList = string.Join(",", tags);

            if (newTagList != TicketToDisplay.TagList)
            {
                fieldEventTextList.Add("changed ticket's tags", GetFieldEventValues(TicketToDisplay.TagList, newTagList));
                TicketToDisplay.TicketTags.Clear();
                foreach (string tag in tags)
                {
                    TicketTag tTag = new TicketTag();
                    tTag.TagName = tag;
                    TicketToDisplay.TicketTags.Add(tTag);
                }
                TicketToDisplay.TagList = newTagList;
            }

            if (fieldEventTextList.Count > 0)
            {
                if (fieldEventTextList.Count > 1)
                {
                    eventComment.CommentEvent = "has edited multiple fields";
                }
                else
                {
                    foreach (var v in fieldEventTextList)//lazy, using foreach even though only one element... just a more convienient way to get at the content
                    {
                        if (v.Key == "changed ticket's details")
                        {
                            eventComment.CommentEvent = v.Key;
                        }
                        else
                        {
                            eventComment.CommentEvent = string.Format("{0} from {1} to {2}", v.Key, v.Value.Key, v.Value.Value);
                        }
                    }
                }

                if (string.IsNullOrEmpty(eventComment.Comment))
                {
                    eventComment.CommentEvent = eventComment.CommentEvent + " without comment";
                }

                StringBuilder sb = new StringBuilder();
                foreach (var v in fieldEventTextList)
                {
                    sb.Append("<div class='MultiFieldEditContainer'>");
                    sb.Append("<div class='MiltiFieldEditFieldName'>");
                    string fromtoString = GetFieldEventValuesHtml(v.Value.Key, v.Value.Value);
                    sb.Append(v.Key.Substring(0, 1).ToUpper() + v.Key.Substring(1));
                    sb.Append("</div>");
                    if (v.Key != "changed ticket's details")
                    {
                        sb.Append(fromtoString);
                    }
                    sb.Append("</div>");
                }
                if (!string.IsNullOrEmpty(eventComment.Comment))
                {
                    sb.Append("\n\n------------\n\n");
                    sb.Append(eventComment.Comment);
                }
                eventComment.Comment = sb.ToString();

                EditComplete(eventComment);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #17
0
 public TicketTagViewModel(TicketTag model)
 {
     Model = model;
 }
Пример #18
0
        private void LoadTagInfo(TicketTag T)
        {
            Loading_data = true;
            if (T != null)
            {
                _tag = T;
                tb_CounterInitials.Text = T.CounterInitials;
                try
                {
                    dtp_CountedDate.Value = (DateTime)T.CountedDate;
                }
                catch
                {
                    dtp_CountedDate.Value = DateTime.Now;
                }
                chb_Void.Checked     = T.VoidTag;
                chb_Verified.Checked = T.Verified;
                tb_ItemNo.Text       = T.ItemNumber;
                tb_ItemDesc.Text     = T.ItemDescription;
                tb_ItemRef.Text      = T.ItemReference1;
                tb_Lot.Text          = T.LotNumber;
                tb_UM.Text           = T.ItemUM;
                tb_STK.Text          = T.Stockroom;
                tb_BIN.Text          = T.Bin;
                tb_CountQty.Text     = T.CountQTY.ToString();
                tb_ReCountQty.Text   = T.ReCountQTY.ToString();
                chb_Blank.Checked    = T.BlankTag;
                #region IC
                switch (T.InventoryCategory)
                {
                case "O":
                {
                    chb_OnHand.Checked     = true;
                    chb_Hold.Checked       = false;
                    chb_Inspection.Checked = false;
                    chb_Shipping.Checked   = false;
                    break;
                }

                case "H":
                {
                    chb_OnHand.Checked     = false;
                    chb_Hold.Checked       = true;
                    chb_Inspection.Checked = false;
                    chb_Shipping.Checked   = false;
                    break;
                }

                case "I":
                {
                    chb_OnHand.Checked     = false;
                    chb_Hold.Checked       = false;
                    chb_Inspection.Checked = true;
                    chb_Shipping.Checked   = false;
                    break;
                }

                case "S":
                {
                    chb_OnHand.Checked     = false;
                    chb_Hold.Checked       = false;
                    chb_Inspection.Checked = false;
                    chb_Shipping.Checked   = true;
                    break;
                }
                }
                #endregion

                if (x.ActiveEventStatus)
                {
                    #region enable fields
                    if (!T.VoidTag)
                    {
                        chb_Void.Enabled           = true;
                        chb_Verified.Enabled       = true;
                        tb_CounterInitials.Enabled = true;
                        tb_CounterInitials.Enabled = true;

                        if (T.BlankTag)
                        {
                            tb_ItemNo.Enabled   = true;
                            tb_ItemNo.Enabled   = true;
                            tb_ItemDesc.Enabled = true;
                            tb_ItemRef.Enabled  = true;
                            tb_Lot.Enabled      = true;
                            tb_UM.Enabled       = true;
                            gb_IC.Enabled       = true;
                            tb_STK.Enabled      = true;
                            tb_BIN.Enabled      = true;

                            //chb_OnHand.Checked = true;
                            //chb_Hold.Checked = false;
                            //chb_Inspection.Checked = false;
                            //chb_Shipping.Checked = false;
                        }
                        else
                        {
                            tb_ItemNo.Enabled   = false;
                            tb_ItemNo.Enabled   = false;
                            tb_ItemDesc.Enabled = false;
                            tb_ItemRef.Enabled  = false;
                            tb_Lot.Enabled      = false;
                            tb_UM.Enabled       = false;
                            gb_IC.Enabled       = false;
                            tb_STK.Enabled      = false;
                            tb_BIN.Enabled      = false;
                        }
                        if (tb_CountQty.Text == "0")
                        {
                            tb_CountQty.Enabled   = true;
                            tb_ReCountQty.Enabled = false;
                        }
                        else
                        {
                            tb_CountQty.Enabled   = false;
                            tb_ReCountQty.Enabled = true;
                        }
                    }
                    else
                    {
                        tb_CounterInitials.Enabled = false;
                        tb_ItemNo.Enabled          = false;
                        tb_ItemNo.Enabled          = false;
                        tb_ItemDesc.Enabled        = false;
                        tb_ItemRef.Enabled         = false;
                        tb_Lot.Enabled             = false;
                        tb_UM.Enabled         = false;
                        gb_IC.Enabled         = false;
                        tb_STK.Enabled        = false;
                        tb_BIN.Enabled        = false;
                        tb_CountQty.Enabled   = false;
                        tb_ReCountQty.Enabled = false;
                        chb_Void.Enabled      = true;
                    }
                    #endregion
                }
            }
            else
            {
                foreach (Control b in this.gb_TagInfo.Controls.OfType <TextBox>())
                {
                    if (b.Name.ToString() != "tb_TagNo")
                    {
                        b.Text    = "";
                        b.Enabled = false;
                    }
                }
                gb_IC.Enabled = false;

                chb_OnHand.Checked     = false;
                chb_Hold.Checked       = false;
                chb_Inspection.Checked = false;
                chb_Shipping.Checked   = false;

                chb_Void.Enabled = false;
                chb_Void.Checked = false;

                chb_Verified.Enabled = false;
                chb_Verified.Checked = false;
            }

            Loading_data = false;
        }
 private void UpdateTicketTag(Ticket ticket, TicketTagGroup tagGroup, TicketTag ticketTag)
 {
     _ticketService.UpdateTag(ticket, tagGroup, ticketTag);
     EventServiceFactory.EventService.PublishEvent(EventTopicNames.ActivatePosView);
 }
 private void OnTicketTagSelected(TicketTag obj)
 {
     UpdateTicketTag(SelectedTicket, SelectedTicketTagData, obj);
 }
Пример #21
0
 public void UpdateTag(Ticket ticket, TicketTagGroup tagGroup, TicketTag ticketTag)
 {
     UpdateTag(ticket, tagGroup, ticketTag.Name);
 }
Пример #22
0
        /// <summary>
        /// Edits the ticket.
        /// </summary>
        /// <param name="ticket">The ticket being edited with updated values.</param>
        /// <param name="comment">The comment.</param>
        /// <returns></returns>
        public bool EditTicketDetails(Ticket ticket, string comment)
        {

            var changes = Repository.GetTicketChanges(ticket);

            var rnv = new NameValueCollection();
            if (!CheckSecurityForTicketActivity(ticket, TicketActivity.EditTicketInfo))
            {
                rnv.Add("noAuth", "User is not authorized to edit ticket details");
            }

            //There are only certain fields we allow to be changed, check rules
            List<string> allowedFieldChanges = new List<string> { "Title", "Details", "Priority", "Type", "Category", "Owner", "TagList" };
            foreach (var field in changes)
            {
                if (!allowedFieldChanges.Contains(field.Key))
                {
                    rnv.Add("ticketInfo", string.Format("Changes to field {0} are not allowed", field.Key));
                }
            }

            //handle taglist changed by removing all existing tags and rebuilding them
            //NOTE: We could examine the tags and just make removals and insertions as needed, but the
            //          actual performance suffers very little and is not worth the extra effort and complexity.
            if (changes.ContainsKey("TagList"))
            {
                Repository.ClearTags(ticket, false);

                string[] tagsArr = TagUtility.GetTagsFromString(ticket.TagList);
                foreach (string tag in tagsArr)
                {
                    TicketTag tTag = new TicketTag();
                    tTag.TagName = tag;
                    ticket.TicketTags.Add(tTag);
                }
                ticket.TagList = string.Join(",", tagsArr);//in case the tags array trimmed spaces and such
            }

            rnv.Add(ValidateTicketDetailFields(ticket));//check the field rules 

            if (changes.Count < 1)
            {
                rnv.Add("ticketInfo", "No changes to ticket's details were found.");
            }

            if (rnv.Count > 0)
            {
                throw new RuleException(rnv);
            }

            var ticketComment = GetActivityComment(TicketActivity.EditTicketInfo, comment, ticket.AssignedTo, ticket.GetNotificationSubscribers());

            StringBuilder sb = new StringBuilder();
            foreach (var c in changes)
            {
                string v = null;
                PropertyInfo pi = ticket.GetType().GetProperty(c.Key);
                if (pi != null)
                {
                    v = pi.GetValue(ticket, null) as string;
                }
                if (c.Key != "Details" && c.Key != "Title" && c.Key != "TagList" && c.Key != "Owner")
                {
                    sb.Append(string.Format("- Changed {0} from \"{1}\" to \"{2}\"\n", c.Key.ConvertPascalCaseToFriendlyString(), c.Value, v));
                }
                else if (c.Key == "Owner")
                {
                    sb.Append(string.Format("- Changed {0} from \"{1}\" to \"{2}\"\n", c.Key.ConvertPascalCaseToFriendlyString(), Security.GetUserDisplayName(c.Value as string), Security.GetUserDisplayName(v)));
                }
                else //details, title, and tags are long strings so we don't include the full text of the old and new values
                {
                    sb.Append(string.Format("- Changed {0}\n", c.Key.ConvertPascalCaseToFriendlyString()));
                }
            }
            if (ticketComment.Comment.Length > 0)
            {
                sb.Append("\n******\n");
                sb.Append(ticketComment.Comment);
            }
            ticketComment.Comment = sb.ToString();

            ticket.TicketComments.Add(ticketComment);

            ticket.LastUpdateBy = Security.CurrentUserName;
            ticket.LastUpdateDate = DateTime.Now;

            return Repository.UpdateTicket(ticket);
        }