示例#1
0
        public ResponseDto Save(ApprovalFicheSaveDto saveDto)
        {
            ResponseDto responseDto = new ResponseDto();

            ApprovalFicheSaveBo saveBo = new ApprovalFicheSaveBo()
            {
                FicheId        = saveDto.FicheId,
                ApprovalStatId = saveDto.ApprovalStatId,

                Session = Session
            };

            if (saveDto.ChoiceReturnList != null && saveDto.ChoiceReturnList.Count > 0)
            {
                saveBo.ChoiceReturnList = (from x in saveDto.ChoiceReturnList
                                           select new FicheMoneyBo
                {
                    Id = x.Id,
                    DebtPersonAccountId = x.DebtPersonAccountId,
                    CreditPersonAccountId = x.CreditPersonAccountId,
                    Total = x.Total,
                    DebtPersonAccountTypeId = x.DebtPersonAccountTypeId,
                    CreditPersonAccountTypeId = x.CreditPersonAccountTypeId,
                    Notes = x.Notes
                }).ToList();
            }

            ResponseBo responseBo = approvalFicheBusiness.Save(saveBo);

            base.SendNotifyWsToList(responseBo.PersonNotifyList);

            responseDto = responseBo.ToResponseDto();
            return(responseDto);
        }
示例#2
0
        public ResponseBo Save(ApprovalFicheSaveBo saveBo)
        {
            ResponseBo responseBo = new ResponseBo();

            try
            {
                using (SqlConnection conn = DbAccess.Connection.GetConn())
                {
                    var p = new DynamicParameters();
                    p.Add("@Message", dbType: DbType.String, direction: ParameterDirection.Output, size: 255);
                    p.Add("@IsSuccess", dbType: DbType.Boolean, direction: ParameterDirection.Output);
                    p.Add("@ReturnedId", dbType: DbType.Int64, direction: ParameterDirection.Output);
                    p.Add("@NotifyPersonListJson", dbType: DbType.String, direction: ParameterDirection.Output, size: 1000);

                    p.Add("@Inner", false, DbType.Boolean, ParameterDirection.Input); // true means called from another 'spApprovalFicheSave'

                    p.Add("@FicheId", saveBo.FicheId, DbType.Int64, ParameterDirection.Input);
                    p.Add("@MyPersonId", saveBo.Session.MyPerson.Id, DbType.Int64, ParameterDirection.Input);
                    p.Add("@ApprovalStatId", saveBo.ApprovalStatId, DbType.Int32, ParameterDirection.Input);

                    p.Add("@OperatorRealId", saveBo.Session.RealPerson.Id, DbType.Int64, ParameterDirection.Input);
                    p.Add("@LanguageId", saveBo.Session.RealPerson.LanguageId, DbType.Int32, ParameterDirection.Input);

                    DataTable dt = new DataTable();
                    dt.Columns.Add("Id", typeof(long));
                    dt.Columns.Add("DebtPersonAccountId", typeof(long));
                    dt.Columns.Add("CreditPersonAccountId", typeof(long));
                    dt.Columns.Add("Total", typeof(decimal));
                    dt.Columns.Add("DebtPersonAccountTypeId", typeof(int));
                    dt.Columns.Add("CreditPersonAccountTypeId", typeof(int));
                    dt.Columns.Add("Notes", typeof(string));

                    if (saveBo.ChoiceReturnList != null && saveBo.ChoiceReturnList.Count > 0)
                    {
                        foreach (FicheMoneyBo item in saveBo.ChoiceReturnList)
                        {
                            DataRow dr = dt.NewRow();
                            dr["Id"] = item.Id;
                            if (item.DebtPersonAccountId == null)
                            {
                                dr["DebtPersonAccountId"] = DBNull.Value;
                            }
                            else
                            {
                                dr["DebtPersonAccountId"] = item.DebtPersonAccountId;
                            }

                            if (item.CreditPersonAccountId == null)
                            {
                                dr["CreditPersonAccountId"] = DBNull.Value;
                            }
                            else
                            {
                                dr["CreditPersonAccountId"] = item.CreditPersonAccountId;
                            }

                            dr["Total"] = item.Total;
                            dr["DebtPersonAccountTypeId"]   = item.DebtPersonAccountTypeId;
                            dr["CreditPersonAccountTypeId"] = item.CreditPersonAccountTypeId;
                            dr["Notes"] = item.Notes;

                            dt.Rows.Add(dr);
                        }

                        p.Add("@tvpChoiceReturnList", dt.AsTableValuedParameter("tvpFicheMoney"));
                    }

                    conn.Execute("spApprovalFicheSave", p, commandType: CommandType.StoredProcedure);
                    responseBo.Message    = p.Get <string>("@Message");
                    responseBo.IsSuccess  = p.Get <bool>("@IsSuccess");
                    responseBo.ReturnedId = p.Get <long>("@ReturnedId");

                    string NotifyPersonListJson = p.Get <string>("@NotifyPersonListJson");
                    if (NotifyPersonListJson.IsNotNull())
                    {
                        responseBo.PersonNotifyList = JsonConvert.DeserializeObject <List <PersonNotifyListBo> >(NotifyPersonListJson);
                    }
                }
            }
            catch (Exception ex)
            {
                responseBo = base.SaveExLog(ex, this.GetType(), MethodBase.GetCurrentMethod().Name, saveBo);
            }

            return(responseBo);
        }