コード例 #1
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>
        ///   <c>true</c> if XXXX, <c>false</c> otherwise.
        /// </returns>
        /// <exception cref="System.ArgumentNullException">model</exception>
        public async Task <IResult> UpdateAsync(FooModel model)
        {
            var stepName = $"{nameof(FooRepository)}.UpdateAsync";

            using (ProfilingSession.Current.Step(stepName))
            {
                if (model.EqualNull())
                {
                    throw new ArgumentNullException(nameof(model));
                }

                var exists = await this.IsExistsAsync(model.FooId);

                if (exists.Equals(false))
                {
                    return(new Result(false)
                    {
                        Message = "資料不存在"
                    });
                }
                using (var conn = (_databaseHelper.GetConnection(_databaseHelper.WLDOConnectionString)))
                {
                    var sqlCommand = new StringBuilder();
                    sqlCommand.AppendLine(" begin tran ");
                    sqlCommand.AppendLine(" Update [dbo].[Foo] ");
                    sqlCommand.AppendLine(" SET ");
                    sqlCommand.AppendLine(" Name = @Name ,");
                    sqlCommand.AppendLine(" Description = @Description ,");
                    sqlCommand.AppendLine(" Enable = @Enable ,");
                    sqlCommand.AppendLine(" UpdateTime = @UpdateTime ");
                    sqlCommand.AppendLine(" WHERE FooId = @FooId ");
                    sqlCommand.AppendLine(" commit ");

                    var parameters = new DynamicParameters();

                    parameters.Add("FooId", model.FooId);

                    parameters.Add("Name", model.Name.IsNullOrWhiteSpace()
                                       ? string.Empty
                                       : model.Name.Trim().Length > 50
                                           ? model.Name.Trim().Substring(0, 50)
                                           : model.Name.Trim());

                    parameters.Add("Description", model.Description.IsNullOrWhiteSpace()
                                       ? string.Empty
                                       : model.Description.Trim().Length > 100
                                           ? model.Description.Trim().Substring(0, 100)
                                           : model.Description.Trim());

                    parameters.Add("Enable", model.Enable);

                    parameters.Add("UpdateTime", model.UpdateTime);

                    var executeResult = await conn.ExecuteAsync
                                        (

                        sql : sqlCommand.ToString(),
                        param : parameters
                                        );

                    IResult result = new Result(false);

                    if (executeResult.Equals(1))
                    {
                        result.Success    = true;
                        result.AffectRows = executeResult;
                        return(result);
                    }

                    result.Message = "資料更新錯誤";
                    return(result);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 新增
        /// </summary>
        /// <param name="model">The model.</param>
        /// <returns>
        ///   <c>true</c> if XXXX, <c>false</c> otherwise.
        /// </returns>
        public async Task <IResult> InsertAsync(FooModel model)
        {
            var stepName = $"{nameof(FooRepository)}.InsertAsync";

            using (ProfilingSession.Current.Step(stepName))
            {
                if (model.EqualNull())
                {
                    throw new ArgumentNullException(nameof(model));
                }

                using (var conn = (_databaseHelper.GetConnection(_databaseHelper.WLDOConnectionString)))
                {
                    var sqlCommand = new StringBuilder();
                    sqlCommand.AppendLine("begin tran");
                    sqlCommand.AppendLine("INSERT INTO [dbo].[Foo]");
                    sqlCommand.AppendLine("(");
                    sqlCommand.AppendLine("  [FooId],");
                    sqlCommand.AppendLine("  [Name],");
                    sqlCommand.AppendLine("  [Description],");
                    sqlCommand.AppendLine("  [Enable],");
                    sqlCommand.AppendLine("  [CreateTime],");
                    sqlCommand.AppendLine("  [UpdateTime] ");
                    sqlCommand.AppendLine(")");
                    sqlCommand.AppendLine("VALUES");
                    sqlCommand.AppendLine("(");
                    sqlCommand.AppendLine("  @FooId,");
                    sqlCommand.AppendLine("  @Name,");
                    sqlCommand.AppendLine("  @Description,");
                    sqlCommand.AppendLine("  @Enable,");
                    sqlCommand.AppendLine("  @CreateTime,");
                    sqlCommand.AppendLine("  @UpdateTime ");
                    sqlCommand.AppendLine(");");
                    sqlCommand.AppendLine("commit");

                    var parameters = new DynamicParameters();
                    parameters.Add("FooId", model.FooId);

                    parameters.Add("Name", model.Name.IsNullOrWhiteSpace()
                                       ? string.Empty
                                       : model.Name.Trim().Length > 50
                                           ? model.Name.Trim().Substring(0, 50)
                                           : model.Name.Trim());

                    parameters.Add("Description", model.Description.IsNullOrWhiteSpace()
                                       ? string.Empty
                                       : model.Description.Trim().Length > 100
                                           ? model.Description.Trim().Substring(0, 100)
                                           : model.Description.Trim());

                    parameters.Add("Enable", model.Enable);
                    parameters.Add("CreateTime", model.CreateTime);
                    parameters.Add("UpdateTime", model.UpdateTime);

                    var executeResult = await conn.ExecuteAsync
                                        (

                        sql : sqlCommand.ToString(),
                        param : parameters
                                        );

                    IResult result = new Result(false);

                    if (executeResult.Equals(1))
                    {
                        result.Success    = true;
                        result.AffectRows = executeResult;
                        return(result);
                    }

                    result.Message = "資料新增錯誤";
                    return(result);
                }
            }
        }