示例#1
0
        // Changes the ID of the tag with ID tagPrimeIdFrom to tagPrimeIdFrom.
        // (It actually does this by creating copies and deleting the old ones).
        // The previously existing tag with tagPrimeIdTo will be deleted.
        // If the from and to are the same, that tag is just deleted.
        public static void SwitchTagId(
            this PersonDataContext dataContext,
            int tagPrimeIdFrom,
            int tagPrimeIdTo)
        {
            // Make a copy of the tag with ID tagPrimeIdFrom but with
            // ID tagPrimeIdTo.
            var tagToCopy = dataContext.GetTagPrime(tagPrimeIdFrom);
            var copyOfTag = new TagPrime();

            copyOfTag.Tag  = tagToCopy.Tag;
            copyOfTag.Type = tagToCopy.Type;
            copyOfTag.AllowNonAdminsToAdd = tagToCopy.AllowNonAdminsToAdd;
            copyOfTag.PrimeId             = tagPrimeIdTo;

            var tagToDelete = dataContext.GetTagPrime(tagPrimeIdTo);

            dataContext.TagPrimes.DeleteOnSubmit(tagToDelete);
            dataContext.TagPrimes.DeleteOnSubmit(tagToCopy);
            dataContext.SubmitChanges();

            if (tagPrimeIdFrom == tagPrimeIdTo)
            {
                return;
            }
            dataContext.TagPrimes.InsertOnSubmit(copyOfTag);
            dataContext.SubmitChanges();
        }
示例#2
0
 public static object ToJson(this TagPrime tagPrime)
 {
     return(new
     {
         tag = tagPrime.Tag,
         non_admins_can_edit = tagPrime.AllowNonAdminsToAdd
     });
 }
示例#3
0
        public static void makeTagToRemoveUnsearchable(
            this PersonDataContext dataContext,
            int tagToRemoveId)
        {
            var tagToRemove       = dataContext.GetTagPrime(tagToRemoveId);
            var copyOfTagToRemove = new TagPrime();

            copyOfTagToRemove.PrimeId = tagToRemove.PrimeId;
            copyOfTagToRemove.Tag     = TagToPrimeDictionary.INVALID_TAG_NAME;

            dataContext.TagPrimes.DeleteOnSubmit(tagToRemove);
            dataContext.SubmitChanges();
            dataContext.TagPrimes.InsertOnSubmit(copyOfTagToRemove);
            dataContext.SubmitChanges();
        }
示例#4
0
        public static IEnumerable <object> AddTag(string tagToAdd, bool isTagForAnyone)
        {
            //if (!CurrentMisparIshi.IsAdmin())
            //{
            //    return createResponseObject(
            //        "You're not an admin, what are you doing here??");
            //}

            if (tagToAdd.Contains(" "))
            {
                return(createResponseObject(
                           "אסור להוסיף תגים עם רווחים"));
            }


            var nextPrime = TagToPrimeDictionary.GetNextPrime();

            if (nextPrime == -1)
            {
                return(createResponseObject(
                           "יש 10,000 תגים ויותר מזה לא נתמך"));
            }


            var dataContext         = new PersonDataContext();
            var alreadyExistingTags =
                dataContext.TagPrimes.Where(tag => tag.Tag.Equals(tagToAdd));

            if (alreadyExistingTags.Count() > 0)
            {
                return(createResponseObject(
                           String.Format("התג {0} כבר קיים", tagToAdd)));
            }

            var newTagPrime = new TagPrime();

            newTagPrime.PrimeId             = nextPrime;
            newTagPrime.Tag                 = tagToAdd;
            newTagPrime.AllowNonAdminsToAdd = isTagForAnyone;

            dataContext.TagPrimes.InsertOnSubmit(newTagPrime);
            dataContext.SubmitChanges();

            TagToPrimeDictionary.ResetTagToPrimeDictionaries();

            return(createResponseObject(
                       String.Format("התג {0} התווסף בהצלחה", tagToAdd)));
        }
示例#5
0
        public static IEnumerable <object> AddTag(
            string tagToAdd, bool isTagForAnyone, string type)
        {
            lock (LOCK)
            {
                if (!CurrentMisparIshi.IsAdmin())
                {
                    return(createResponseObject(
                               "You're not an admin, what are you doing here??"));
                }

                if (tagToAdd.Contains(" "))
                {
                    return(createResponseObject(
                               "אסור להוסיף תגים עם רווחים"));
                }

                if (tagToAdd.Length == 0)
                {
                    return(createResponseObject("נו באמת..."));
                }

                if (type.Length == 0)
                {
                    return(createResponseObject("נא להוסיף סוג"));
                }


                var nextPrime = TagToPrimeDictionary.GetNextPrime();
                if (nextPrime == -1)
                {
                    return(createResponseObject(
                               "יש 10,000 תגים ויותר מזה לא נתמך"));
                }


                var dataContext         = new PersonDataContext();
                var alreadyExistingTags =
                    dataContext.TagPrimes.Where(tag => tag.Tag.Equals(tagToAdd));
                if (alreadyExistingTags.Count() > 0)
                {
                    return(createResponseObject(
                               String.Format("התג {0} כבר קיים", tagToAdd)));
                }

                var newTagPrime = new TagPrime();
                newTagPrime.PrimeId             = nextPrime;
                newTagPrime.Tag                 = tagToAdd;
                newTagPrime.AllowNonAdminsToAdd = isTagForAnyone;
                newTagPrime.Type                = type;

                dataContext.TagPrimes.InsertOnSubmit(newTagPrime);
                dataContext.SubmitChanges();

                TagToPrimeDictionary.ResetTagToPrimeDictionaries();

                AdminChangeWriter.WriteAdminChange(
                    String.Format("Added tag {0} of type {1}", tagToAdd, type));

                return(createResponseObject(
                           String.Format("התג {0} מסוג {1} התווסף בהצלחה", tagToAdd, type)));
            }
        }