示例#1
0
        public static string Save(OrderRequestDataModel data, string action, RequestProfile requestProfile)
        {
            var sql = "EXEC ";


            switch (action)
            {
            case "Create":
                sql += "dbo.OrderRequestInsert  " +
                       " " + ToSQLParameter(BaseDataModel.BaseDataColumns.AuditId, requestProfile.AuditId) +
                       ", " + ToSQLParameter(BaseDataModel.BaseDataColumns.ApplicationId, requestProfile.ApplicationId);
                break;

            case "Update":
                sql += "dbo.OrderRequestUpdate  " +
                       " " + ToSQLParameter(BaseDataModel.BaseDataColumns.AuditId, requestProfile.AuditId);
                break;

            default:
                break;
            }
            sql = sql + ", " + ToSQLParameter(data, OrderRequestDataModel.DataColumns.OrderRequestId);
            sql = sql + ", " + ToSQLParameter(data, OrderRequestDataModel.DataColumns.EventDate);
            sql = sql + ", " + ToSQLParameter(data, OrderRequestDataModel.DataColumns.Notes);
            sql = sql + ", " + ToSQLParameter(data, OrderRequestDataModel.DataColumns.LastModifiedBy);
            sql = sql + ", " + ToSQLParameter(data, OrderRequestDataModel.DataColumns.LastModifiedOn);
            sql = sql + ", " + ToSQLParameter(data, OrderRequestDataModel.DataColumns.ParentOrderRequestId);
            sql = sql + ", " + ToSQLParameter(data, OrderRequestDataModel.DataColumns.PortfolioId);

            return(sql);
        }
示例#2
0
        public static int Create(OrderRequestDataModel data, RequestProfile requestProfile)
        {
            var sql   = Save(data, "Create", requestProfile);
            var newId = DBDML.RunScalarSQL("OrderRequest.Insert", sql, DataStoreKey);

            return(Convert.ToInt32(newId));
        }
示例#3
0
        public static bool DoesExist(OrderRequestDataModel data, RequestProfile requestProfile)
        {
            var doesExistRequest = new OrderRequestDataModel();

            doesExistRequest.ApplicationId = data.ApplicationId;
            doesExistRequest.PortfolioId   = data.PortfolioId;

            var list = GetEntityDetails(doesExistRequest, requestProfile, 0);

            return(list.Count > 0);
        }
示例#4
0
        public async Task <OrderResponseDataModel> FilterAsync(OrderRequestDataModel orderRequestDataModel)
        {
            var query = $@"SELECT * FROM (
                            SELECT * FROM {tableName} WHERE {tableName}.IsRemoved != 1
                            ORDER BY {tableName}.CreationDate
                            OFFSET {orderRequestDataModel.Paging.ItemsCount * orderRequestDataModel.Paging.CurrentPage} ROWS 
                            FETCH NEXT {orderRequestDataModel.Paging.ItemsCount} ROWS ONLY
                        ) AS {tableName}
                        LEFT JOIN {Constants.USERS_TABLE_NAME} ON {tableName}.UserId = {Constants.USERS_TABLE_NAME}.Id
                        LEFT JOIN {Constants.ORDER_ITEMS_TABLE_NAME} ON {Constants.ORDER_ITEMS_TABLE_NAME}.OrderId = {tableName}.Id
                        LEFT JOIN {Constants.PRINTING_EDITIONS_TABLE_NAME} ON {Constants.ORDER_ITEMS_TABLE_NAME}.PrintingEditionId 
                            = {Constants.PRINTING_EDITIONS_TABLE_NAME}.Id";

            using (var dbContext = new SqlConnection(connectionString))
            {
                await dbContext.OpenAsync();

                var orders = await dbContext.QueryAsync <Order, User, OrderItem, PrintingEdition, Order>(
                    query, (order, user, orderItem, printingEdition) =>
                {
                    order.User = user;
                    if (orderItem != null)
                    {
                        orderItem.PrintingEdition = printingEdition;
                    }
                    order.OrderItems.Add(orderItem);
                    return(order);
                });

                var querybaleOrders = orders
                                      .GroupBy(order => order.Id)
                                      .Select(group =>
                {
                    var result        = group.FirstOrDefault();
                    result.OrderItems = group.Select(order => order.OrderItems.SingleOrDefault()).ToList();
                    return(result);
                });

                var subquery = new List <Order>().AsQueryable();
                foreach (var status in orderRequestDataModel.OrderStatuses)
                {
                    subquery = subquery.Concat(querybaleOrders.Where(o => o.Status == status));
                }
                querybaleOrders = subquery;
                orders          = querybaleOrders.ToList();
                var totalCount = orders.Count();
                var result     = new OrderResponseDataModel
                {
                    Orders     = orders,
                    TotalCount = totalCount
                };
                return(result);
            }
        }
示例#5
0
        public static void Delete(OrderRequestDataModel data, RequestProfile requestProfile)
        {
            const string sql = @"dbo.OrderRequestDelete ";

            var parameters =
                new
            {
                AuditId          = requestProfile.AuditId
                , OrderRequestId = data.OrderRequestId
            };

            using (var dataAccess = new DataAccessBase(DataStoreKey))
            {
                dataAccess.Connection.Execute(sql, parameters, commandType: CommandType.StoredProcedure);
            }
        }
        public IHttpActionResult Post(OrderRequestDataModel model)
        {
            //var obj = await Request.Content.ReadAsAsync<JObject>();
            //var modelCaptcha = obj.ToObject<CaptchaResponse>();
            //var encodedResponse = modelCaptcha.GRecaptchaResponse;
            var encodedResponse = model.GRecaptchaResponse;

            var isCaptchaValid = ReCaptcha.Validate(encodedResponse);

            if (!isCaptchaValid)
            {
                return(this.BadRequest("Sorry mate, wrong captcha response. Are you a bot?"));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userId = this.User.Identity.GetUserId();

            var isExistUserWithOrder = this.customerCards.All().Any(p => p.Id == model.Id && p.UserId == userId);

            if (isExistUserWithOrder)
            {
                return(this.Get(model.Id));
            }

            var order = this.customerCards.All().FirstOrDefault(p => p.Id == model.Id);

            if (order == null)
            {
                throw new HttpException((int)HttpStatusCode.NotFound, "Order number not exist!");
            }

            order.UserId = userId;

            this.customerCards.Update(order);

            this.customerCards.SaveChanges();

            return(this.Get(model.Id));
        }
示例#7
0
        public static OrderRequestDataModel Map(OrderRequestModel filterModel)
        {
            if (filterModel is null)
            {
                return(new OrderRequestDataModel());
            }

            var filter = new OrderRequestDataModel
            {
                SortPropertyName = filterModel.SortPropertyName,
                SortType         = filterModel.SortType,
                Paging           = _pagingMapper.Map(filterModel.Paging)
            };

            foreach (var status in filterModel.OrderStatuses)
            {
                filter.OrderStatuses.Add(status);
            }
            return(filter);
        }
示例#8
0
        public async Task <OrderResponseDataModel> FilterAsync(OrderRequestDataModel orderRequestDataModel)
        {
            var query = DbSet.Include(order => order.User)
                        .Include(order => order.OrderItems)
                        .ThenInclude(orderItem => orderItem.PrintingEdition)
                        .Where(o => !o.IsRemoved && orderRequestDataModel.OrderStatuses.Contains(o.Status));
            var totalCount = await query.CountAsync();

            query = query
                    .OrderBy(orderRequestDataModel.SortPropertyName, $"{orderRequestDataModel.SortType}")
                    .Skip(orderRequestDataModel.Paging.CurrentPage * orderRequestDataModel.Paging.ItemsCount)
                    .Take(orderRequestDataModel.Paging.ItemsCount);
            var orders = query.ToList();
            var result = new OrderResponseDataModel
            {
                Orders     = orders,
                TotalCount = totalCount
            };

            return(result);
        }
示例#9
0
        public static List <OrderRequestDataModel> GetEntityDetails(OrderRequestDataModel dataQuery, RequestProfile requestProfile, int returnAuditInfo = BaseDataManager.ReturnAuditInfoOnDetails)
        {
            const string sql = @"dbo.OrderRequestSearch ";

            var parameters =
                new
            {
                AuditId           = requestProfile.AuditId
                , ApplicationId   = requestProfile.ApplicationId
                , ReturnAuditInfo = returnAuditInfo
                , OrderRequestId  = dataQuery.OrderRequestId
                , Notes           = dataQuery.Notes
                , PortfolioId     = dataQuery.PortfolioId
            };

            List <OrderRequestDataModel> result;

            using (var dataAccess = new DataAccessBase(DataStoreKey))
            {
                result = dataAccess.Connection.Query <OrderRequestDataModel>(sql, parameters, commandType: CommandType.StoredProcedure).ToList();
            }

            return(result);
        }
示例#10
0
        public static string ToSQLParameter(OrderRequestDataModel data, string dataColumnName)
        {
            var returnValue = "NULL";

            switch (dataColumnName)
            {
            case OrderRequestDataModel.DataColumns.OrderRequestId:
                if (data.OrderRequestId != null)
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NUMBER, OrderRequestDataModel.DataColumns.OrderRequestId, data.OrderRequestId);
                }
                else
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NULL, OrderRequestDataModel.DataColumns.OrderRequestId);
                }
                break;

            case OrderRequestDataModel.DataColumns.EventDate:
                if (data.EventDate != null)
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_STRING_OR_DATE, OrderRequestDataModel.DataColumns.EventDate, data.EventDate);
                }
                else
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NULL, OrderRequestDataModel.DataColumns.EventDate);
                }
                break;

            case OrderRequestDataModel.DataColumns.Notes:
                if (!string.IsNullOrEmpty(data.Notes))
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_STRING_OR_DATE, OrderRequestDataModel.DataColumns.Notes, data.Notes);
                }
                else
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NULL, OrderRequestDataModel.DataColumns.Notes);
                }
                break;

            case OrderRequestDataModel.DataColumns.LastModifiedBy:
                if (!string.IsNullOrEmpty(data.LastModifiedBy))
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_STRING_OR_DATE, OrderRequestDataModel.DataColumns.LastModifiedBy, data.LastModifiedBy);
                }
                else
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NULL, OrderRequestDataModel.DataColumns.LastModifiedBy);
                }
                break;

            case OrderRequestDataModel.DataColumns.LastModifiedOn:
                if (data.LastModifiedOn != null)
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_STRING_OR_DATE, OrderRequestDataModel.DataColumns.LastModifiedOn, data.LastModifiedOn);
                }
                else
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NULL, OrderRequestDataModel.DataColumns.LastModifiedOn);
                }
                break;

            case OrderRequestDataModel.DataColumns.ParentOrderRequestId:
                returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NUMBER, OrderRequestDataModel.DataColumns.ParentOrderRequestId, data.ParentOrderRequestId);
                break;

            case OrderRequestDataModel.DataColumns.PortfolioId:
                if (data.PortfolioId != null)
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NUMBER, OrderRequestDataModel.DataColumns.PortfolioId, data.PortfolioId);
                }
                else
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NULL, OrderRequestDataModel.DataColumns.PortfolioId);
                }
                break;

            case OrderRequestDataModel.DataColumns.Portfolio:
                if (!string.IsNullOrEmpty(data.Portfolio))
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_STRING_OR_DATE, OrderRequestDataModel.DataColumns.Portfolio, data.Portfolio);
                }
                else
                {
                    returnValue = string.Format(SQL_TEMPLATE_PARAMETER_NULL, OrderRequestDataModel.DataColumns.Portfolio);
                }
                break;


            default:
                returnValue = BaseDataManager.ToSQLParameter(data, dataColumnName);
                break;
            }

            return(returnValue);
        }
示例#11
0
        public static void Update(OrderRequestDataModel data, RequestProfile requestProfile)
        {
            var sql = Save(data, "Update", requestProfile);

            DBDML.RunSQL("OrderRequest.Update", sql, DataStoreKey);
        }
示例#12
0
        public static DataTable Search(OrderRequestDataModel data, RequestProfile requestProfile)
        {
            var list = GetEntityDetails(data, requestProfile, 0);

            return(list.ToDataTable());
        }