Example #1
0
        public void EnumCast()
        {
            EnumBase a = EnumBase.Bob;
            EnumBase b = (EnumBase)0;

            Assert.IsTrue(a == b);
        }
Example #2
0
    int ParseArguments(String[] args)
    {
        bool help = false;

        var p = new OptionSet {
            { "h|?|help", "Show this help message", v => help = v != null },
            { "o=|out=", "Set the output directory", v => OutputDir = v },
            { "ns=|namespace=", "Set the namespace of the generated code", v => Lib.BaseNamespace = v },
            { "lib=", "The base name of the C++ library, i.e. 'qt' for libqt.so", v => Lib.BaseName = v },
            { "filters=", "A file containing filter directives for filtering classes", v => FilterFile = v },
            { "inline=", "Inline methods in lib are: notpresent (default), present, surrogatelib (present in %lib%-inline)", v => Lib.InlinePolicy = (InlineMethods)Enum.Parse(typeof(InlineMethods), v, true) }
        };

        try {
            args = p.Parse(args).ToArray();
        } catch (OptionException) {
            Console.WriteLine("Try `generator --help' for more information.");
            return(1);
        }

        if (help)
        {
            p.WriteOptionDescriptions(Console.Error);
            return(1);
        }

        if (args.Length != 1)
        {
            Console.WriteLine("Usage: generator <options> <input xml file>");
            return(1);
        }

        // Code templates
        LibsTemplate  = new CSharpLibs();
        ClassTemplate = new CSharpClass();
        EnumTemplate  = new CSharpEnum();

        InputFileName = args [0];

        if (Lib.BaseName == null)
        {
            Console.WriteLine("The --lib= option is required.");
            return(1);
        }

        if (Lib.BaseNamespace == null)
        {
            Lib.BaseNamespace = Path.GetFileNameWithoutExtension(Lib.BaseName);
        }

        if (OutputDir == null)
        {
            OutputDir = "output";
        }

        return(0);
    }
Example #3
0
        /// <summary>
        /// Filter a database with the title
        /// </summary>
        /// <param name="titre">the title</param>
        /// <param name="dataBase">the database</param>
        /// <returns>DataBase filtered</returns>
        public static List <NDS_Rom> DataBaseFiltreParTitre(string titre, EnumBase dataBase)
        {
            List <NDS_Rom> database = GetDataBase(dataBase);
            List <NDS_Rom> roms     = database.Where(
                rom =>
                rom.Title.ToLower().Contains(titre.ToLower())).ToList();

            return(roms);
        }
Example #4
0
        /// <summary>
        /// Get database filtered by single language
        /// </summary>
        /// <param name="languageCode">language's code</param>
        /// <param name="dataBase">the database</param>
        /// <returns>filtered database</returns>
        public static List <NDS_Rom> DataBaseFiltreParLangue(int languageCode, EnumBase dataBase)
        {
            List <NDS_Rom> database = GetDataBase(dataBase);
            List <NDS_Rom> roms     = database.Where(
                rom =>
                rom.LanguageCode.Contains(languageCode)).ToList();

            return(roms);
        }
Example #5
0
        public string LinkAll()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }

                var pager = new Pager();
                var query = new SubSonic.Query.Select(provider, "ID", "Number", "Title", "Cover", "CreateUserNumber", "CreateDate", "ArticlePower", "ArticlePowerPwd").From <Article>().Where <Article>(x => x.Status == Enum_Status.Approved && x.Submission >= Enum_Submission.Approved);
                query = query.And("CreateUserNumber").IsEqualTo(user.Number);
                var recordCount = query.GetRecordCount();
                if (recordCount == 0)
                {
                    result.message = new { records = recordCount, totalpage = 1 };
                    return(JsonConvert.SerializeObject(result));
                }
                var totalPage = recordCount % pager.Size == 0 ? recordCount / pager.Size : recordCount / pager.Size + 1;

                var sort = new string[] { "ID" };

                var list = query.Paged(pager.Index, pager.Size).OrderDesc(sort).ExecuteTypedList <Article>();

                var newlist = (from l in list
                               select new
                {
                    ID = l.ID,
                    Number = l.Number,
                    Title = l.Title,
                    Cover = l.Cover,
                    CreateDate = l.CreateDate.ToString("yyyy-MM-dd hh:mm:ss"),
                    ArticlePower = l.ArticlePower,
                    ArticlePowerPwd = l.ArticlePowerPwd
                });

                result.result  = true;
                result.message = new
                {
                    currpage  = pager.Index,
                    records   = recordCount,
                    totalpage = totalPage,
                    list      = newlist
                };
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Article_LinkAll:" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #6
0
        public string Edit()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var ToUserNumber = ZNRequest.GetString("ToUserNumber");
                if (string.IsNullOrWhiteSpace(ToUserNumber))
                {
                    result.message = "参数异常";
                    return(JsonConvert.SerializeObject(result));
                }
                var exist = db.Exists <Black>(x => x.CreateUserNumber == user.Number && x.ToUserNumber == ToUserNumber);
                if (exist)
                {
                    user.Follows = db.Find <Fan>(x => x.CreateUserNumber == user.Number).Count;

                    result.result  = true;
                    result.message = user.Follows;
                }
                Black model = new Black();
                model.ToUserNumber     = ToUserNumber;
                model.CreateDate       = DateTime.Now;
                model.CreateUserNumber = user.Number;
                model.CreateIP         = Tools.GetClientIP;
                var success = Tools.SafeInt(db.Add <Black>(model)) > 0;
                if (success)
                {
                    //取消关注
                    var fan = db.Single <Fan>(x => x.CreateUserNumber == user.Number && x.ToUserNumber == ToUserNumber);
                    if (fan != null)
                    {
                        db.Delete <Fan>(fan.ID);
                    }

                    user.Follows = db.Find <Fan>(x => x.CreateUserNumber == user.Number).Count;

                    result.result  = true;
                    result.message = user.Follows;
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Black_Edit:" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #7
0
        public string Used()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var number = ZNRequest.GetString("Number");
                if (string.IsNullOrWhiteSpace(number))
                {
                    result.message = "参数异常";
                    return(JsonConvert.SerializeObject(result));
                }
                var model = db.Single <Background>(x => x.Number == number);
                if (model == null)
                {
                    result.message = "信息异常";
                    return(JsonConvert.SerializeObject(result));
                }
                model.IsUsed = Enum_Used.Approved;
                var success = db.Update <Background>(model) > 0;
                if (success)
                {
                    //取消启用
                    var list = db.Find <Background>(x => x.ArticleNumber == model.ArticleNumber && x.Number != model.Number && x.IsUsed == Enum_Used.Approved).ToList();
                    if (list.Count > 0)
                    {
                        list.ForEach(x =>
                        {
                            x.IsUsed = Enum_Used.Audit;
                        });
                        db.UpdateMany <Background>(list);
                    }
                    result.result  = true;
                    result.message = model.Number;
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Background_Edit" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #8
0
        public string Edit()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var number = ZNRequest.GetString("ArticleNumber");
                var url    = ZNRequest.GetString("ShowyUrl");
                if (string.IsNullOrWhiteSpace(number))
                {
                    result.message = "参数异常";
                    return(JsonConvert.SerializeObject(result));
                }
                ArticleCustom model = db.Single <ArticleCustom>(x => x.ArticleNumber == number);
                if (model == null)
                {
                    model = new ArticleCustom();
                    model.ArticleNumber = number;
                }
                model.ShowyUrl = url;
                var success = false;
                if (model.ID == 0)
                {
                    success = Tools.SafeInt(db.Add <ArticleCustom>(model)) > 0;
                }
                else
                {
                    success = db.Update <ArticleCustom>(model) > 0;
                }
                if (success)
                {
                    result.result  = true;
                    result.message = "success";
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_ArticleCustom_Edit" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #9
0
        public string Import()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var urls   = ZNRequest.GetString("Url");
                var number = ZNRequest.GetString("ArticleNumber");
                if (string.IsNullOrWhiteSpace(urls))
                {
                    result.message = "信息异常";
                    return(JsonConvert.SerializeObject(result));
                }
                var list = new List <ArticlePartJson>();
                var url  = urls.Split(',').ToList();
                url.ForEach(x =>
                {
                    var model              = new ArticlePart();
                    model.Introduction     = x;
                    model.IntroExpand      = string.Empty;
                    model.ArticleNumber    = number;
                    model.Types            = Enum_ArticlePart.Pic;
                    model.CreateUserNumber = user.Number;
                    model.CreateIP         = Tools.GetClientIP;
                    model.CreateDate       = DateTime.Now;
                    model.Status           = Enum_Status.Audit;
                    model.SortID           = 0;
                    var id = Tools.SafeInt(db.Add <ArticlePart>(model));
                    list.Add(new ArticlePartJson(id, x));
                });
                result.result  = true;
                result.message = list;
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_ArticlePart_Import" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #10
0
        public string Delete()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var number = ZNRequest.GetString("Number");
                var model  = db.Single <Background>(x => x.Number == number);
                if (model == null)
                {
                    result.message = "背景信息验证失败";
                    return(JsonConvert.SerializeObject(result));
                }
                if (model.CreateUserNumber != user.Number)
                {
                    result.code    = Enum_ErrorCode.NoPower;
                    result.message = "没有权限";
                    return(JsonConvert.SerializeObject(result));
                }
                var success = db.Delete <Background>(model.ID) > 0;
                if (success)
                {
                    result.result  = true;
                    result.message = model;
                }
                else
                {
                    result.message = "删除失败";
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Background_Delete:" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #11
0
        public string ToMe_1_4()
        {
            ApiResult result = new ApiResult();

            try
            {
                var UserNumber = ZNRequest.GetString("UserNumber");
                if (string.IsNullOrWhiteSpace(UserNumber))
                {
                    result.message = new { records = 0, totalpage = 1 };
                    return(JsonConvert.SerializeObject(result));
                }
                var query       = new SubSonic.Query.Select(provider).From <Red>().Where <Red>(x => x.ToUserNumber == UserNumber);
                var recordCount = query.GetRecordCount();
                if (recordCount == 0)
                {
                    result.message = new { records = 0, totalpage = 1 };
                    return(JsonConvert.SerializeObject(result));
                }
                var pager     = new Pager();
                var totalPage = recordCount % pager.Size == 0 ? recordCount / pager.Size : recordCount / pager.Size + 1;
                var list      = query.Paged(pager.Index, pager.Size).OrderDesc("ID").ExecuteTypedList <Red>();
                list.ForEach(x =>
                {
                    x.RedTypeText    = EnumBase.GetDescription(typeof(Enum_RedType), x.RedType);
                    x.CreateDateText = x.CreateDate.ToString("yyyy-MM-dd hh:mm:ss");
                });
                result.result  = true;
                result.message = new
                {
                    currpage  = pager.Index,
                    records   = recordCount,
                    totalpage = totalPage,
                    list      = list
                };
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Red_ToMe_1_3:" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #12
0
        /// <summary>
        /// Get specific dataBase
        /// </summary>
        /// <param name="dataBase">Wich dataBase</param>
        /// <returns>The database you ask for</returns>
        private static List <NDS_Rom> GetDataBase(EnumBase dataBase)
        {
            List <NDS_Rom> database = new List <NDS_Rom>();

            switch (dataBase)
            {
            case EnumBase.AdvanScene:
                database = _ndsAdvanScene.DataBase;
                break;

            case EnumBase.Collection:
                database = _ndsCollection.NdsDataBase;
                break;

            case EnumBase.CollectionMissing:
                database = NdsCollectionMissing;
                break;
            }

            return(database);
        }
Example #13
0
        public string Delete()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var ToUserNumber = ZNRequest.GetString("ToUserNumber");
                if (string.IsNullOrWhiteSpace(ToUserNumber))
                {
                    result.message = "参数异常";
                    return(JsonConvert.SerializeObject(result));
                }
                var model = db.Single <Black>(x => x.CreateUserNumber == user.Number && x.ToUserNumber == ToUserNumber);
                if (model == null)
                {
                    result.message = "信息异常";
                    return(JsonConvert.SerializeObject(result));
                }
                var success = db.Delete <Black>(model.ID) > 0;
                if (success)
                {
                    result.result  = true;
                    result.message = "";
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Black_Delete:" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #14
0
        private bool ExecuteCommand(MethodInfo method, OpenPlayer player, string[] args, out object result)
        {
            Log.Info($"Execute command {method}");

            result = null;

            var parameters = method.GetParameters();

            int addLenght = 0;

            if (parameters.Length > 0 && typeof(OpenPlayer).IsAssignableFrom(parameters[0].ParameterType))
            {
                addLenght = 1;
            }

            object[] objectArgs = new object[parameters.Length];

            try
            {
                int i = 0;
                for (int k = 0; k < parameters.Length; k++)
                {
                    var parameter = parameters[k];
                    if (k == 0 && addLenght == 1)
                    {
                        if (typeof(OpenPlayer).IsAssignableFrom(parameter.ParameterType))
                        {
                            objectArgs[k] = player;
                            continue;
                        }
                        Log.WarnFormat("Command method {0} missing Player as first argument.", method.Name);
                        return(false);
                    }

                    if (PluginManager.Services.TryResolve(parameter.ParameterType, out var param))
                    {
                        objectArgs[k] = param;
                        continue;
                    }

                    if (parameter.IsOptional && args.Length <= i)
                    {
                        objectArgs[k] = parameter.DefaultValue;
                        continue;
                    }

                    if (args.Length < k)
                    {
                        return(false);
                    }

                    if (typeof(IParameterSerializer).IsAssignableFrom(parameter.ParameterType))
                    {
                        var ctor = parameter.ParameterType.GetConstructor(Type.EmptyTypes);
                        IParameterSerializer defaultValue = ctor.Invoke(null) as IParameterSerializer;
                        defaultValue?.Deserialize(player, args[i++]);

                        objectArgs[k] = defaultValue;

                        continue;
                    }

                    if (typeof(CustomEnum).IsAssignableFrom(parameter.ParameterType))
                    {
                        var        ctor = parameter.ParameterType.GetConstructor(Type.EmptyTypes);
                        CustomEnum c    = ctor.Invoke(null) as CustomEnum;
                        if (!c.SetValue(args[i++]))
                        {
                            return(false);
                        }

                        objectArgs[k] = c;
                        continue;
                        //param.EnumType = c.
                    }

                    if (parameter.ParameterType.BaseType == typeof(EnumBase))
                    {
                        var      ctor     = parameter.ParameterType.GetConstructor(Type.EmptyTypes);
                        EnumBase instance = (EnumBase)ctor.Invoke(null);
                        instance.Value = args[i++];
                        objectArgs[k]  = instance;
                        continue;
                    }

                    if (parameter.ParameterType == typeof(Target))
                    {
                        var target = FillTargets(player, player.Level, args[i++]);
                        objectArgs[k] = target;
                        continue;
                    }

                    if (parameter.ParameterType == typeof(BlockPos))
                    {
                        if (args.Length < i + 3)
                        {
                            return(false);
                        }

                        BlockPos blockPos = new BlockPos();

                        string val = args[i++];
                        if (val.StartsWith("~"))
                        {
                            val = val.Substring(1);
                            blockPos.XRelative = true;
                        }

                        int.TryParse(val, out var x);
                        blockPos.X = x;

                        val = args[i++];
                        if (val.StartsWith("~"))
                        {
                            val = val.Substring(1);
                            blockPos.YRelative = true;
                        }

                        int.TryParse(val, out var y);
                        blockPos.Y = y;

                        val = args[i++];
                        if (val.StartsWith("~"))
                        {
                            val = val.Substring(1);
                            blockPos.ZRelative = true;
                        }

                        int.TryParse(val, out var z);
                        blockPos.Z = z;

                        objectArgs[k] = blockPos;
                        continue;
                    }

                    if (parameter.ParameterType == typeof(string))
                    {
                        objectArgs[k] = args[i++];
                        continue;
                    }
                    if (parameter.ParameterType == typeof(byte))
                    {
                        byte value;
                        if (!byte.TryParse(args[i++], out value))
                        {
                            return(false);
                        }
                        objectArgs[k] = value;
                        continue;
                    }
                    if (parameter.ParameterType == typeof(short))
                    {
                        short value;
                        if (!short.TryParse(args[i++], out value))
                        {
                            return(false);
                        }
                        objectArgs[k] = value;
                        continue;
                    }
                    if (parameter.ParameterType == typeof(int))
                    {
                        int value;
                        if (!int.TryParse(args[i++], out value))
                        {
                            return(false);
                        }
                        objectArgs[k] = value;
                        continue;
                    }
                    if (parameter.ParameterType == typeof(bool))
                    {
                        bool value;
                        if (!bool.TryParse(args[i++], out value))
                        {
                            return(false);
                        }
                        objectArgs[k] = value;
                        continue;
                    }
                    if (parameter.ParameterType == typeof(float))
                    {
                        float value;
                        if (!float.TryParse(args[i++], out value))
                        {
                            return(false);
                        }
                        objectArgs[k] = value;
                        continue;
                    }
                    if (parameter.ParameterType == typeof(double))
                    {
                        double value;
                        if (!double.TryParse(args[i++], out value))
                        {
                            return(false);
                        }
                        objectArgs[k] = value;
                        continue;
                    }
                    if (parameter.ParameterType.IsEnum)
                    {
                        string val   = args[i++];
                        Enum   value = Enum.Parse(parameter.ParameterType, val, true) as Enum;
                        if (value == null)
                        {
                            Log.Error($"Could not convert to valid enum value: {val}");
                            continue;
                        }

                        objectArgs[k] = value;
                        continue;
                    }

                    if (IsParams(parameter) && parameter.ParameterType == typeof(string[]))
                    {
                        List <string> strings = new List <string>();
                        for (int j = i++; j < args.Length; j++)
                        {
                            strings.Add(args[j]);
                        }
                        objectArgs[k] = strings.ToArray();
                        continue;
                    }

                    return(false);
                }
            }
            catch (Exception e)
            {
                //	if (Log.IsDebugEnabled)
                {
                    Log.Error("Trying to execute command overload", e);
                }

                return(false);
            }

            try
            {
                if (method.IsStatic)
                {
                    result = method.Invoke(null, objectArgs);
                }
                else
                {
                    if (_pluginCommands.TryGetValue(method, out CommandData data))
                    {
                        object instance = data.Instance;

                        Plugin.CurrentPlayer = player;                         // Setting thread local for call
                        result = method.Invoke(instance, objectArgs);
                        Plugin.CurrentPlayer = null;
                    }
                    else
                    {
                        Log.Warn($"Could not find instance of command's declaringtype!");
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception e)
            {
                Log.Error($"Error while executing command {method}", e);
            }

            return(false);
        }
Example #15
0
 public override bool Evaluate(BigInteger value) => EnumBase.IsIn(ReferenceValue, value);
Example #16
0
        public string CommentZanEdit()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var number = ZNRequest.GetString("CommentNumber");
                if (string.IsNullOrWhiteSpace(number))
                {
                    result.message = "评论信息异常";
                    return(JsonConvert.SerializeObject(result));
                }

                Comment comment = new SubSonic.Query.Select(provider, "ID", "CreateUserNumber", "Goods", "Number").From <Comment>().Where <Comment>(x => x.Number == number).ExecuteSingle <Comment>();
                if (comment == null)
                {
                    result.message = "评论信息异常";
                    return(JsonConvert.SerializeObject(result));
                }

                //判断是否拉黑
                var black = db.Exists <Black>(x => x.CreateUserNumber == comment.CreateUserNumber && x.ToUserNumber == user.Number);
                if (black)
                {
                    result.code    = Enum_ErrorCode.NoPower;
                    result.message = "没有权限";
                    return(JsonConvert.SerializeObject(result));
                }
                var success = 0;
                var model   = db.Single <CommentZan>(x => x.CreateUserNumber == user.Number && x.CommentNumber == number);
                var goods   = model == null ? comment.Goods + 1 : comment.Goods - 1;

                //是否新增
                var isadd = model == null ? 0 : 1;
                if (model == null)
                {
                    model                  = new CommentZan();
                    model.CreateDate       = DateTime.Now;
                    model.CreateUserNumber = user.Number;
                    model.CreateIP         = Tools.GetClientIP;
                    model.CommentNumber    = number;
                    success                = Tools.SafeInt(db.Add <CommentZan>(model));
                }
                else
                {
                    success = db.Delete <CommentZan>(model.ID);
                }
                if (success > 0)
                {
                    if (goods < 0)
                    {
                        goods = 0;
                    }
                    new SubSonic.Query.Update <Comment>(provider).Set("Goods").EqualTo(goods).Where <Comment>(x => x.ID == comment.ID).Execute();
                    result.result  = true;
                    result.message = isadd + "|" + goods;
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Zan_CommentZanEdit" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #17
0
        public string Edit()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var articleID = ZNRequest.GetInt("ArticleID");
                if (articleID <= 0)
                {
                    result.message = "参数异常";
                    return(JsonConvert.SerializeObject(result));
                }
                Article article = new SubSonic.Query.Select(provider, "ID", "CreateUserNumber", "Goods", "Number").From <Article>().Where <Article>(x => x.ID == articleID).ExecuteSingle <Article>();
                if (article == null)
                {
                    result.message = "文章信息异常";
                    return(JsonConvert.SerializeObject(result));
                }

                //判断是否拉黑
                var black = db.Exists <Black>(x => x.CreateUserNumber == article.CreateUserNumber && x.ToUserNumber == user.Number);
                if (black)
                {
                    result.code    = Enum_ErrorCode.NoPower;
                    result.message = "没有权限";
                    return(JsonConvert.SerializeObject(result));
                }

                var success = 0;
                var model   = db.Single <ArticleZan>(x => x.CreateUserNumber == user.Number && x.ArticleNumber == article.Number);
                var goods   = model == null ? article.Goods + 1 : article.Goods - 1;

                //是否新增
                var isadd = model == null ? 0 : 1;
                if (model == null)
                {
                    model                   = new ArticleZan();
                    model.CreateDate        = DateTime.Now;
                    model.CreateUserNumber  = user.Number;
                    model.CreateIP          = Tools.GetClientIP;
                    model.ArticleNumber     = article.Number;
                    model.ArticleUserNumber = article.CreateUserNumber;
                    success                 = Tools.SafeInt(db.Add <ArticleZan>(model));

                    //操作记录
                    var now    = DateTime.Now.ToString("yyyy-MM-dd");
                    var action = db.Single <UserAction>(x => x.CreateUserNumber == user.Number && x.CreateTimeText == now && x.ActionType == Enum_ActionType.Like);

                    LogHelper.ErrorLoger.Error(JsonConvert.SerializeObject(action));

                    if (action == null)
                    {
                        action = new UserAction();
                        action.CreateUserNumber = user.Number;
                        action.ActionType       = Enum_ActionType.Like;
                        action.CreateTime       = DateTime.Now;
                        action.CreateTimeText   = now;
                        action.ActionInfo       = article.Number;
                        db.Add <UserAction>(action);
                    }
                    else
                    {
                        if (!action.ActionInfo.Contains(article.Number))
                        {
                            action.ActionInfo += "," + article.Number;
                            db.Update <UserAction>(action);
                        }
                    }
                }
                else
                {
                    success = db.Delete <ArticleZan>(model.ID);
                }
                if (success > 0)
                {
                    if (goods < 0)
                    {
                        goods = 0;
                    }
                    new SubSonic.Query.Update <Article>(provider).Set("Goods").EqualTo(goods).Where <Article>(x => x.ID == articleID).Execute();
                    result.result  = true;
                    result.message = isadd + "|" + goods;
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Zan_ArticleZanEdit" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #18
0
        public string Edit()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var number = ZNRequest.GetString("ToUserNumber");
                if (string.IsNullOrWhiteSpace(number))
                {
                    result.message = "参数异常,请刷新重试";
                    return(JsonConvert.SerializeObject(result));
                }

                //判断是否拉黑
                var black = db.Exists <Black>(x => x.CreateUserNumber == user.Number && x.ToUserNumber == number);
                if (black)
                {
                    result.message = "对方已被加入黑名单,请在设置页面解除";
                    return(JsonConvert.SerializeObject(result));
                }
                Fan model = db.Single <Fan>(x => x.CreateUserNumber == user.Number && x.ToUserNumber == number);
                if (model == null)
                {
                    model = new Fan();
                    model.CreateUserNumber = user.Number;
                    model.ToUserNumber     = number;
                    model.CreateDate       = DateTime.Now;
                    model.CreateIP         = Tools.GetClientIP;
                    var success = Tools.SafeInt(db.Add <Fan>(model)) > 0;
                    if (success)
                    {
                        user.Follows   = db.Find <Fan>(x => x.CreateUserNumber == user.Number).Count;
                        result.result  = true;
                        result.message = user.Follows;

                        //操作记录
                        var now    = DateTime.Now.ToString("yyyy-MM-dd");
                        var action = db.Single <UserAction>(x => x.CreateUserNumber == user.Number && x.CreateTimeText == now && x.ActionType == Enum_ActionType.Follow);
                        if (action == null)
                        {
                            action = new UserAction();
                            action.CreateUserNumber = user.Number;
                            action.ActionType       = Enum_ActionType.Follow;
                            action.CreateTime       = DateTime.Now;
                            action.CreateTimeText   = now;
                            action.ActionInfo       = number;
                            db.Add <UserAction>(action);
                        }
                        else
                        {
                            if (!action.ActionInfo.Contains(number))
                            {
                                action.ActionInfo += "," + number;
                                db.Update <UserAction>(action);
                            }
                        }

                        //推送
                        new AppHelper().Push(number, 0, "", user.NickName, Enum_PushType.Fan);
                    }
                }
                else
                {
                    result.result  = true;
                    result.message = db.Find <Fan>(x => x.CreateUserNumber == user.Number).Count;
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Fan_Edit:" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #19
0
        public string Edit()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var ArticleNumber = ZNRequest.GetString("ArticleNumber");
                if (string.IsNullOrWhiteSpace(ArticleNumber))
                {
                    result.message = "文章信息异常";
                    return(JsonConvert.SerializeObject(result));
                }

                var summary = SqlFilter(ZNRequest.GetString("Summary"), false, false);
                if (string.IsNullOrWhiteSpace(summary))
                {
                    result.message = "请填写评论内容";
                    return(JsonConvert.SerializeObject(result));
                }
                summary = CutString(summary, 2000);
                var dirtyword = AppHelper.HasDirtyWord(summary);
                if (!string.IsNullOrWhiteSpace(dirtyword))
                {
                    result.message = "您的输入内容含有敏感内容[" + dirtyword + "],请检查后重试哦";
                    return(JsonConvert.SerializeObject(result));
                }

                Article article = new SubSonic.Query.Select(provider, "ID", "Number", "CreateUserNumber").From <Article>().Where <Article>(x => x.Number == ArticleNumber).ExecuteSingle <Article>();
                if (article == null)
                {
                    result.message = "文章信息异常";
                    return(JsonConvert.SerializeObject(result));
                }

                //判断是否拉黑
                var black = db.Exists <Black>(x => x.CreateUserNumber == article.CreateUserNumber && x.ToUserNumber == user.Number);
                if (black)
                {
                    result.code    = Enum_ErrorCode.NoPower;
                    result.message = "没有权限";
                    return(JsonConvert.SerializeObject(result));
                }

                Comment model = new Comment();
                model.ArticleNumber       = article.Number;
                model.ArticleUserNumber   = article.CreateUserNumber;
                model.Summary             = summary;
                model.Number              = BuildNumber();
                model.CreateDate          = DateTime.Now;
                model.CreateUserNumber    = user.Number;
                model.CreateIP            = Tools.GetClientIP;
                model.ParentCommentNumber = ZNRequest.GetString("ParentCommentNumber");
                model.ParentUserNumber    = ZNRequest.GetString("ParentUserNumber");

                model.Province     = ZNRequest.GetString("Province");
                model.City         = ZNRequest.GetString("City");
                model.District     = ZNRequest.GetString("District");
                model.Street       = ZNRequest.GetString("Street");
                model.DetailName   = ZNRequest.GetString("DetailName");
                model.CityCode     = ZNRequest.GetString("CityCode");
                model.Latitude     = Tools.SafeDouble(ZNRequest.GetString("Latitude"));
                model.Longitude    = Tools.SafeDouble(ZNRequest.GetString("Longitude"));
                model.ShowPosition = ZNRequest.GetInt("ShowPosition");
                model.ID           = Tools.SafeInt(db.Add <Comment>(model));
                if (model.ID > 0)
                {
                    result.result  = true;
                    result.message = model.ID;

                    //推送
                    new AppHelper().Push(article.CreateUserNumber, article.ID, article.Number, user.NickName, Enum_PushType.Comment, false);
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Comment_Edit:" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
        private object ExecuteCommand(MethodInfo method, Player player, string[] args)
        {
            var parameters = method.GetParameters();

            int addLenght = 0;

            if (parameters.Length > 0 && typeof(Player).IsAssignableFrom(parameters[0].ParameterType))
            {
                addLenght = 1;
            }

            object[] objectArgs = new object[parameters.Length];

            for (int k = 0; k < parameters.Length; k++)
            {
                var parameter = parameters[k];
                int i         = k - addLenght;
                if (k == 0 && addLenght == 1)
                {
                    if (typeof(Player).IsAssignableFrom(parameter.ParameterType))
                    {
                        objectArgs[k] = player;
                        continue;
                    }

                    return(null);
                }

                if (parameter.IsOptional && args.Length <= i)
                {
                    objectArgs[k] = parameter.DefaultValue;
                    continue;
                }

                if (typeof(IParameterSerializer).IsAssignableFrom(parameter.ParameterType))
                {
                    var ctor = parameter.ParameterType.GetConstructor(Type.EmptyTypes);
                    IParameterSerializer defaultValue = ctor.Invoke(null) as IParameterSerializer;
                    defaultValue?.Deserialize(player, args[i]);

                    objectArgs[k] = defaultValue;

                    continue;
                }

                if (parameter.ParameterType.BaseType == typeof(EnumBase))
                {
                    var      ctor     = parameter.ParameterType.GetConstructor(Type.EmptyTypes);
                    EnumBase instance = (EnumBase)ctor.Invoke(null);
                    instance.Value = args[i];
                    objectArgs[k]  = instance;
                    continue;
                }

                if (parameter.ParameterType == typeof(Target))
                {
                    var target = JsonConvert.DeserializeObject <Target>(args[i]);
                    target        = FillTargets(player, player.Level, target);
                    objectArgs[k] = target;
                    continue;
                }

                if (parameter.ParameterType == typeof(BlockPos))
                {
                    var blockpos = JsonConvert.DeserializeObject <BlockPos>(args[i]);
                    objectArgs[k] = blockpos;
                    continue;
                }

                if (parameter.ParameterType == typeof(string))
                {
                    objectArgs[k] = args[i];
                    continue;
                }
                if (parameter.ParameterType == typeof(byte))
                {
                    byte value;
                    if (!byte.TryParse(args[i], out value))
                    {
                        return(null);
                    }
                    objectArgs[k] = value;
                    continue;
                }
                if (parameter.ParameterType == typeof(short))
                {
                    short value;
                    if (!short.TryParse(args[i], out value))
                    {
                        return(null);
                    }
                    objectArgs[k] = value;
                    continue;
                }
                if (parameter.ParameterType == typeof(int))
                {
                    int value;
                    if (!int.TryParse(args[i], out value))
                    {
                        return(null);
                    }
                    objectArgs[k] = value;
                    continue;
                }
                if (parameter.ParameterType == typeof(bool))
                {
                    bool value;
                    if (!bool.TryParse(args[i], out value))
                    {
                        return(null);
                    }
                    objectArgs[k] = value;
                    continue;
                }
                if (parameter.ParameterType == typeof(float))
                {
                    float value;
                    if (!float.TryParse(args[i], out value))
                    {
                        return(null);
                    }
                    objectArgs[k] = value;
                    continue;
                }
                if (parameter.ParameterType == typeof(double))
                {
                    double value;
                    if (!double.TryParse(args[i], out value))
                    {
                        return(null);
                    }
                    objectArgs[k] = value;
                    continue;
                }
                if (parameter.ParameterType.IsEnum)
                {
                    Enum value = Enum.Parse(parameter.ParameterType, args[i], true) as Enum;
                    if (value == null)
                    {
                        continue;
                    }

                    objectArgs[k] = value;
                    continue;
                }

                if (IsParams(parameter) && parameter.ParameterType == typeof(string[]))
                {
                    List <string> strings = new List <string>();
                    for (int j = i; j < args.Length; j++)
                    {
                        strings.Add(args[j]);
                    }
                    objectArgs[k] = strings.ToArray();
                    continue;
                }

                return(null);
            }

            return(null);
        }
Example #21
0
        public string Edit()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var number = ZNRequest.GetString("ArticleNumber");
                var url    = ZNRequest.GetString("Url");
                if (string.IsNullOrWhiteSpace(number) || string.IsNullOrWhiteSpace(url))
                {
                    result.message = "信息异常";
                    return(JsonConvert.SerializeObject(result));
                }
                var        id    = ZNRequest.GetInt("EditID");
                Background model = new Background();
                if (id > 0)
                {
                    model = db.Single <Background>(x => x.ID == id);
                }
                else
                {
                    model.Number           = BuildNumber();
                    model.ArticleNumber    = number;
                    model.CreateUserNumber = user.Number;
                    model.IsUsed           = Enum_Used.Approved;
                }
                model.Full         = ZNRequest.GetInt("Full");
                model.High         = ZNRequest.GetInt("High");
                model.Transparency = ZNRequest.GetInt("Transparency");
                model.Url          = url;
                var success = false;
                if (id == 0)
                {
                    success = Tools.SafeInt(db.Add <Background>(model)) > 0;
                    if (success)
                    {
                        //取消启用
                        var list = db.Find <Background>(x => x.ArticleNumber == number && x.Number != model.Number && x.IsUsed == Enum_Used.Approved).ToList();
                        if (list.Count > 0)
                        {
                            list.ForEach(x =>
                            {
                                x.IsUsed = Enum_Used.Audit;
                            });
                            db.UpdateMany <Background>(list);
                        }
                    }
                }
                else
                {
                    success = db.Update <Background>(model) > 0;
                }
                if (success)
                {
                    result.result  = true;
                    result.message = model.Number;
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Background_Edit" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #22
0
        public string Edit()
        {
            ApiResult result = new ApiResult();

            try
            {
                User user = GetUserInfo();
                if (user == null)
                {
                    result.message = EnumBase.GetDescription(typeof(Enum_ErrorCode), Enum_ErrorCode.UnLogin);
                    result.code    = Enum_ErrorCode.UnLogin;
                    return(JsonConvert.SerializeObject(result));
                }
                var articleID = ZNRequest.GetInt("ArticleID");
                if (articleID <= 0)
                {
                    result.message = "参数异常";
                    return(JsonConvert.SerializeObject(result));
                }
                Article article = new SubSonic.Query.Select(provider, "ID", "CreateUserNumber", "Number").From <Article>().Where <Article>(x => x.ID == articleID).ExecuteSingle <Article>();
                if (article == null)
                {
                    result.message = "文章信息异常";
                    return(JsonConvert.SerializeObject(result));
                }
                Keep model = db.Single <Keep>(x => x.CreateUserNumber == user.Number && x.ArticleNumber == article.Number);
                if (model == null)
                {
                    model                  = new Keep();
                    model.CreateDate       = DateTime.Now;
                    model.CreateUserNumber = user.Number;
                    model.CreateIP         = Tools.GetClientIP;
                }
                else
                {
                    result.result  = true;
                    result.message = "";
                    return(JsonConvert.SerializeObject(result));
                }
                model.ArticleNumber     = article.Number;
                model.ArticleUserNumber = article.CreateUserNumber;
                var success = Tools.SafeInt(db.Add <Keep>(model)) > 0;
                if (success)
                {
                    result.result  = true;
                    result.message = user.Follows;


                    //操作记录
                    var now    = DateTime.Now.ToString("yyyy-MM-dd");
                    var action = db.Single <UserAction>(x => x.CreateUserNumber == user.Number && x.CreateTimeText == now && x.ActionType == Enum_ActionType.Keep);
                    if (action == null)
                    {
                        action = new UserAction();
                        action.CreateUserNumber = user.Number;
                        action.ActionType       = Enum_ActionType.Keep;
                        action.CreateTime       = DateTime.Now;
                        action.CreateTimeText   = now;
                        action.ActionInfo       = article.Number;
                        db.Add <UserAction>(action);
                    }
                    else
                    {
                        if (!action.ActionInfo.Contains(article.Number))
                        {
                            action.ActionInfo += "," + article.Number;
                            db.Update <UserAction>(action);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogHelper.ErrorLoger.Error("Api_Keep_Edit:" + ex.Message);
                result.message = ex.Message;
            }
            return(JsonConvert.SerializeObject(result));
        }
Example #23
0
	int ParseArguments (String[] args) {
		bool help = false;

		var p = new OptionSet {
				{ "h|?|help", "Show this help message", v => help = v != null },
				{ "o=|out=", "Set the output directory", v => OutputDir = v },
				{ "ns=|namespace=", "Set the namespace of the generated code", v => Lib.BaseNamespace = v },
				{ "lib=", "The base name of the C++ library, i.e. 'qt' for libqt.so", v =>Lib.BaseName = v },
				{ "filters=", "A file containing filter directives for filtering classes", v => FilterFile = v },
				{ "inline=", "Inline methods in lib are: notpresent (default), present, surrogatelib (present in %lib%-inline)", v => Lib.InlinePolicy = (InlineMethods)Enum.Parse (typeof (InlineMethods), v, true) }
			};

		try {
			args = p.Parse (args).ToArray ();
		} catch (OptionException) {
			Console.WriteLine ("Try `generator --help' for more information.");
			return 1;
		}

		if (help) {
			p.WriteOptionDescriptions (Console.Error);
			return 1;
		}

		if (args.Length != 1) {
			Console.WriteLine ("Usage: generator <options> <input xml file>");
			return 1;
		}

		// Code templates
		LibsTemplate = new CSharpLibs ();
		ClassTemplate = new CSharpClass ();
		EnumTemplate = new CSharpEnum ();

		InputFileName = args [0];

		if (Lib.BaseName == null) {
			Console.WriteLine ("The --lib= option is required.");
			return 1;
		}

		if (Lib.BaseNamespace == null) {
			Lib.BaseNamespace = Path.GetFileNameWithoutExtension (Lib.BaseName);
		}

		if (OutputDir == null)
			OutputDir = "output";

		return 0;
	}