Пример #1
0
        public static string GetTagLink(RestCommand command, int tagLinkID)
        {
            TagLink tagLink = TagLinks.GetTagLink(command.LoginUser, tagLinkID);

            if (tagLink.OrganizationID != command.Organization.OrganizationID)
            {
                throw new RestException(HttpStatusCode.Unauthorized);
            }
            return(tagLink.GetXml("TagLink", true));
        }
        public IActionResult Update(int id, string name = null, string description = null, string[] tags = null)
        {
            var entity = db.Files.Include(i => i.TagLinks).FirstOrDefault(x => x.Id == id);

            if (entity != null)
            {
                if (name != null)
                {
                    entity.Name = name;
                }
                if (description != null)
                {
                    entity.Description = description;
                }
                //if (info.Tags != null) entity.Tags = info.Tags;

                if (tags != null)
                {
                    foreach (var link in entity.TagLinks)
                    {
                        db.TagLinks.Remove(link);
                    }
                    entity.TagLinks.Clear();

                    foreach (var tag in tags)
                    {
                        var tagLink = new TagLink();
                        entity.TagLinks.Add(tagLink);

                        var existingTag = db.Tags.FirstOrDefault(x => x.Name == tag.ToLower());
                        if (existingTag == null)
                        {
                            existingTag = new Tag()
                            {
                                Name = tag.ToLower()
                            };
                            tagLink.Tag = existingTag;
                        }
                        else
                        {
                            tagLink.TagId = existingTag.Id;
                        }
                    }
                    db.SaveChanges();
                }

                db.SaveChanges();
                return(Get(entity.Id));
            }
            else
            {
                return(NotFound());
            }
        }
        public void should_only_apply_applicable_tags()
        {
            var dummyTagLink1 = new TagLink { SourceTag = "silver", DestinationTag = "werewolf", Weight = 1.0f };
            var dummyTagLink2 = new TagLink { SourceTag = "silver", DestinationTag = "undead", Weight = 0.5f };
            var dummyTagList = new List<TagLink>() { dummyTagLink1, dummyTagLink2 };

            var dummyWeapon = new Weapon { Damage = 1.0f, Tags = { "silver" } };
            var dummyTarget = new GameEntity(new List<string> { "werewolf" });
            var dummyAttack = new Attack { Weapon = dummyWeapon, Target = dummyTarget };

            var bonusDamageWeightEffect = new BonusDamageDependentEffect(dummyTagList);

            var expectedResult = 1.0f;
            var actualResult = bonusDamageWeightEffect.RunEffect(dummyAttack);

            Assert.That(actualResult, Is.EqualTo(expectedResult));
        }
        public void should_only_apply_applicable_tags()
        {
            var dummyTagLink1 = new TagLink { SourceTag = "magic", DestinationTag = "magic", Weight = -0.5f };
            var dummyTagLink2 = new TagLink { SourceTag = "physical", DestinationTag = "stalwart", Weight = -0.3f };
            var dummyTagList = new List<TagLink>() { dummyTagLink1, dummyTagLink2 };

            var dummyWeapon = new Weapon { Damage = 1.0f, Tags = { "magic" } };
            var dummyTarget = new GameEntity(new List<string> { "magic" });
            var dummyAttack = new Attack { Weapon = dummyWeapon, Target = dummyTarget };

            var resistancesLinkEffect = new ResistancesDependentEffect(dummyTagList);

            var expectedResult =-0.5f;
            var actualResult = resistancesLinkEffect.RunEffect(dummyAttack);

            Assert.That(actualResult, Is.EqualTo(expectedResult));
        }
Пример #5
0
 public Object PostTagLink([FromBody] JObject payload)
 {
     try
     {
         TagLink taglink = new TagLink()
         {
             TagName = (string)payload["TagName"],
             IId     = (string)payload["IId"]
         };
         _context.TagLink.Add(taglink);
         _context.SaveChanges();
         return("success");
     }
     catch (Exception e)
     {
         return(e);
     }
 }
Пример #6
0
        public void AddTicketTag(int tagID, int ticketID)
        {
            Tag    tag    = Tags.GetTag(UserSession.LoginUser, tagID);
            Ticket ticket = Tickets.GetTicket(UserSession.LoginUser, ticketID);

            if (tag.OrganizationID != UserSession.LoginUser.OrganizationID || ticket.OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return;
            }
            TagLink link = TagLinks.GetTagLink(UserSession.LoginUser, ReferenceType.Tickets, ticketID, tagID);

            if (link == null)
            {
                TagLinks links = new TagLinks(UserSession.LoginUser);
                link         = links.AddNewTagLink();
                link.RefType = ReferenceType.Tickets;
                link.RefID   = ticketID;
                link.TagID   = tagID;
                links.Save();
            }
        }
Пример #7
0
 public static TagLink rev(this TagLink tag, LinkType value)
 {
     tag.Rev = value; return(tag);
 }
Пример #8
0
 public static TagLink media(this TagLink tag, Media value)
 {
     tag.Media = value; return(tag);
 }
Пример #9
0
 public static TagLink target(this TagLink tag, Target value)
 {
     tag.Target = value; return(tag);
 }
Пример #10
0
 public static TagLink type(this TagLink tag, MimeType value)
 {
     tag.Type = value; return(tag);
 }
Пример #11
0
 public static TagLink xmllang(this TagLink tag, string value)
 {
     tag.XmlLang = value; return(tag);
 }
Пример #12
0
 public static TagLink ondblclick(this TagLink tag, string value)
 {
     tag.OnDblClick = value; return(tag);
 }
Пример #13
0
        /// <summary>
        /// Update the Ticket related fields that live in their own table.
        /// </summary>
        /// <param name="command">Command received in the request to read and process the data in the request body.</param>
        /// <param name="ticketId">TicketId to update its record.</param>
        private static void UpdateFieldsOfSeparateTable(RestCommand command, Ticket ticket, bool isCustomerTicket = false)
        {
            try
            {
                //Add as necessary to the list and then to the switch-case below for the work to update it.
                List <string> fields = new List <string>()
                {
                    "jirakey", "tags"
                };

                foreach (string field in fields.Select(p => p.ToLower()).ToList())
                {
                    XmlNode node = GetNode(command, field);

                    if (node != null)
                    {
                        switch (field)
                        {
                        case "jirakey":
                            string           jiraKey          = node.InnerText;
                            TicketLinkToJira ticketLinkToJira = new TicketLinkToJira(command.LoginUser);
                            ticketLinkToJira.LoadByTicketID(ticket.TicketID);
                            int?crmLinkId = null;

                            //Next line and 2 If statements are the same as in \webapp\app_code\ticketservice.cs SetSyncWithJira(). Might need to consider making a common funcion for both
                            crmLinkId = CRMLinkTable.GetIdBy(ticket.OrganizationID, IntegrationType.Jira.ToString().ToLower(), ticket.ProductID, command.LoginUser);

                            //If product is not associated to an instance then get the 'default' instance
                            if (crmLinkId == null || crmLinkId <= 0)
                            {
                                CRMLinkTable crmlink = new CRMLinkTable(command.LoginUser);
                                crmlink.LoadByOrganizationID(ticket.OrganizationID);

                                crmLinkId = crmlink.Where(p => p.InstanceName == "Default" &&
                                                          p.CRMType.ToLower() == IntegrationType.Jira.ToString().ToLower())
                                            .Select(p => p.CRMLinkID).FirstOrDefault();
                            }

                            if (ticketLinkToJira != null && ticketLinkToJira.Any())
                            {
                                string oldJiraKey = ticketLinkToJira[0].JiraKey;
                                ticketLinkToJira[0].JiraKey   = jiraKey.ToLower() == "newjiraissue" ? null : jiraKey;
                                ticketLinkToJira[0].CrmLinkID = crmLinkId;
                                ticketLinkToJira.Save();
                                ActionLogs.AddActionLog(command.LoginUser, ActionLogType.Update, ReferenceType.Tickets, ticket.TicketID, string.Format("Changed JiraKey from '{0}' to '{1}'.", oldJiraKey, jiraKey));
                            }
                            else
                            {
                                TicketLinkToJiraItem newJiraLink = ticketLinkToJira.AddNewTicketLinkToJiraItem();
                                newJiraLink.TicketID     = ticket.TicketID;
                                newJiraLink.SyncWithJira = true;
                                newJiraLink.JiraID       = null;
                                newJiraLink.JiraKey      = jiraKey.ToLower() == "newjiraissue" ? null : jiraKey;
                                newJiraLink.JiraLinkURL  = null;
                                newJiraLink.JiraStatus   = null;
                                newJiraLink.CreatorID    = command.LoginUser.UserID;
                                newJiraLink.CrmLinkID    = crmLinkId;

                                if (newJiraLink.CrmLinkID != null && newJiraLink.CrmLinkID > 0)
                                {
                                    newJiraLink.Collection.Save();
                                    ActionLogs.AddActionLog(command.LoginUser, ActionLogType.Update, ReferenceType.Tickets, ticket.TicketID, string.Format("Linked to JiraKey '{0}'.", jiraKey));
                                }
                            }
                            break;

                        case "tags":
                            TagLinks currentTagLinks = new TagLinks(command.LoginUser);
                            currentTagLinks.LoadByReference(ReferenceType.Tickets, ticket.TicketID);
                            XmlNodeList nodeList = node.ChildNodes;
                            List <int>  newTags  = new List <int>();

                            foreach (XmlNode tagNode in nodeList)
                            {
                                string tagValue = tagNode["Value"].InnerText;

                                Tag newTag = Tags.GetTag(command.LoginUser, tagValue);

                                if (newTag == null)
                                {
                                    Tags tag = new Tags(command.LoginUser);
                                    newTag = tag.AddNewTag();
                                    newTag.OrganizationID = isCustomerTicket ? command.Organization.ParentID ?? command.Organization.OrganizationID : command.Organization.OrganizationID;
                                    newTag.Value          = tagValue;
                                    tag.Save();
                                }

                                newTags.Add(newTag.TagID);
                            }

                            foreach (int tag in newTags)
                            {
                                TagLink newTagLink = currentTagLinks.Where(p => p.TagID == tag && p.RefID == ticket.TicketID).SingleOrDefault();
                                if (newTagLink == null)
                                {
                                    TagLinks tagLink = new TagLinks(command.LoginUser);
                                    newTagLink         = tagLink.AddNewTagLink();
                                    newTagLink.TagID   = tag;
                                    newTagLink.RefType = ReferenceType.Tickets;
                                    newTagLink.RefID   = ticket.TicketID;
                                    tagLink.Save();
                                }
                            }

                            List <TagLink> deleteTagLinks = currentTagLinks.Where(p => !newTags.Contains(p.TagID)).ToList();

                            foreach (TagLink deleteTagLink in deleteTagLinks)
                            {
                                deleteTagLink.Delete();
                                deleteTagLink.Collection.Save();
                            }

                            break;

                        default:
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ExceptionLogs.LogException(command.LoginUser, ex, "API", string.Format("OrgID: {0}{1}Verb: {2}{1}Url: {3}{1}Body: {4}", command.Organization.OrganizationID, Environment.NewLine, command.Method, command.Method, command.Data));
            }
        }
Пример #14
0
 public static TagLink title(this TagLink tag, string value)
 {
     tag.Title = value; return(tag);
 }
Пример #15
0
 public static TagLink onmouseout(this TagLink tag, string value)
 {
     tag.OnMouseOut = value; return(tag);
 }
Пример #16
0
 public static TagLink onkeypress(this TagLink tag, string value)
 {
     tag.OnKeyPress = value; return(tag);
 }
Пример #17
0
 public static TagLink onmousemove(this TagLink tag, string value)
 {
     tag.OnMouseMove = value; return(tag);
 }
Пример #18
0
 public static TagLink onmouseup(this TagLink tag, string value)
 {
     tag.OnMouseUp = value; return(tag);
 }
Пример #19
0
 public static TagLink onmousedown(this TagLink tag, string value)
 {
     tag.OnMouseDown = value; return(tag);
 }
Пример #20
0
 public static TagLink id(this TagLink tag, string value)
 {
     tag.Id = value; return(tag);
 }
Пример #21
0
 public static TagLink onkeyup(this TagLink tag, string value)
 {
     tag.OnKeyUp = value; return(tag);
 }
Пример #22
0
 public static TagLink @class(this TagLink tag, string value)
 {
     tag.Class = value; return(tag);
 }
Пример #23
0
 public static TagLink charset(this TagLink tag, Charset value)
 {
     tag.Charset = value; return(tag);
 }
Пример #24
0
 public static TagLink lang(this TagLink tag, LangCode value)
 {
     tag.Lang = value; return(tag);
 }
Пример #25
0
 public static TagLink href(this TagLink tag, string value)
 {
     tag.Href = value; return(tag);
 }
Пример #26
0
 public static TagLink onkeydown(this TagLink tag, string value)
 {
     tag.OnKeyDown = value; return(tag);
 }
Пример #27
0
 public static TagLink dir(this TagLink tag, Dir value)
 {
     tag.Dir = value; return(tag);
 }