コード例 #1
0
ファイル: RFARepository.cs プロジェクト: israelsam/Qantler
        public async Task <RFA> GetRFAByID(long id)
        {
            var param = new DynamicParameters();

            param.Add("@ID", id);

            var mapper = new RFAMapper();

            return((await SqlMapper.QueryAsync(_unitOfWork.Connection,
                                               "GetRFAByID",
                                               new[]
            {
                typeof(RFA),
                typeof(RFALineItem),
                typeof(Attachment),
                typeof(RFAReply),
                typeof(Attachment),
                typeof(Log)
            },
                                               obj =>
            {
                var rfa = obj[0] as RFA;
                var lineItem = obj[1] as RFALineItem;
                var liAtt = obj[2] as Attachment;
                var rep = obj[3] as RFAReply;
                var repAtt = obj[4] as Attachment;
                var rfaLog = obj[5] as Log;

                return mapper.Map(rfa, lineItem, liAtt, rep, repAtt, rfaLog);
            },
                                               param,
                                               splitOn: "ID,LineItemID,AttachmentID,ReplyID,AttachmentID,LogID",
                                               commandType: CommandType.StoredProcedure,
                                               transaction: _unitOfWork.Transaction)).FirstOrDefault());
        }
コード例 #2
0
ファイル: RFARepository.cs プロジェクト: israelsam/Qantler
        public async Task <IList <RFA> > Query(RFAFilter filter)
        {
            var status = new DataTable();

            status.Columns.Add("Val", typeof(int));

            if (filter.Status?.Any() ?? false)
            {
                foreach (var s in filter.Status)
                {
                    status.Rows.Add(s);
                }
            }

            var param = new DynamicParameters();

            param.Add("@ID", filter.ID);
            param.Add("@RequestID", filter.RequestID);
            param.Add("@Customer", filter.Customer);
            param.Add("@RaisedBy", filter.RaisedBy);
            param.Add("@CreatedOn", filter.CreatedOn);
            param.Add("@DueOn", filter.DueOn);
            param.Add("@Status", status.AsTableValuedParameter("dbo.SmallIntType"));

            var mapper = new RFAMapper();

            return((await SqlMapper.QueryAsync <RFA>(_unitOfWork.Connection,
                                                     "SelectRFA",
                                                     new []
            {
                typeof(RFA),
                typeof(Model.Request)
            },
                                                     obj =>
            {
                return mapper.Map(obj[0] as RFA,
                                  request: obj[1] as Model.Request);
            },
                                                     param,
                                                     splitOn: "ID,Request",
                                                     commandType: CommandType.StoredProcedure,
                                                     transaction: _unitOfWork.Transaction)).Distinct().ToList());
        }