コード例 #1
0
    public int SaveRequest(CustomerRequests customerrequests, SqlConnection connection)
    {
        //Create the SQL Query for inserting a product
        string createQuery = String.Format("Insert into RequestEstimate (FName, LName, Phone, Email, Comments) Values('{0}', '{1}', '{2}', '{3}', '{4}');"
                                           + "Select @@Identity", customerrequests.fname, customerrequests.lname, customerrequests.phone, customerrequests.email, customerrequests.comments);

        //Create the SQL Query for updating a product
        string updateQuery = String.Format("Update Products SET FName = '{0}', LName ='{1}', Phone = '{2}',Email= '{3}', Comments= '{4}' Where Id = '{5}';",
                                           customerrequests.fname, customerrequests.lname, customerrequests.phone, customerrequests.email, customerrequests.comments, customerrequests.requestestimatId);

        string query = (customerrequests.requestestimatId != 0) ? updateQuery : createQuery;

        int savedRequestID = 0;

        using (SqlCommand command = new SqlCommand(query, connection))
        {
            //Execute the command to SQL Server and return the newly created ID
            var commandResult = command.ExecuteScalar();

            savedRequestID =
                (commandResult != null) ? Convert.ToInt32(commandResult) : customerrequests.requestestimatId;
        }

        return(savedRequestID);
    }
コード例 #2
0
        public async Task <CustomerResult> CreateCustomer(CustomerRequests request)
        {
            DynamicParameters parameters = new DynamicParameters();

            parameters.Add("@Name", request.Name);
            parameters.Add("@Mail", request.Mail);
            parameters.Add("@PhoneNumber", request.PhoneNumber);
            return(await SqlMapper.QueryFirstOrDefaultAsync <CustomerResult>(cnn: conn,
                                                                             param: parameters,
                                                                             sql: "sp_CreateCustomer",
                                                                             commandType: CommandType.StoredProcedure));
        }
コード例 #3
0
 private static void HandleWareHouseMessage(WarehouseReply warehouseMsg)
 {
     if (CustomerRequests.Find(x => x.CustomerId == warehouseMsg.Order.CustomerId) != null)
     {
         if (!HasPublished[warehouseMsg.Order.CustomerId])
         {
             Console.WriteLine("Recieved message from a local warehouse.");
             if (warehouseMsg.Order.IsAvailable)
             {
                 Console.WriteLine("Product is available..\nSending to client..");
                 RetailerReply msg = new RetailerReply()
                 {
                     ProductId = warehouseMsg.Order.ProductIds[0], IsAvailable = warehouseMsg.Order.IsAvailable
                 };
                 Bus.Send <RetailerReply>($"retailer.client.{warehouseMsg.Order.CustomerId}", msg);
                 CustomerRequests.RemoveAll(x => x.CustomerId == warehouseMsg.Order.CustomerId);
                 WarehouseReplyLimiter.Remove(warehouseMsg.Order.CustomerId);
                 HasPublished.Remove(warehouseMsg.Order.CustomerId);
                 Console.WriteLine($"Response sent to customer with client id: {warehouseMsg.Order.CustomerId}");
             }
             else
             {
                 Console.WriteLine("Product not available.. Publishing to all warehouses..");
                 RetailerRequest req = new RetailerRequest()
                 {
                     Order = warehouseMsg.Order
                 };
                 Bus.Publish <RetailerRequest>(req, "retailer.warehouses");
                 HasPublished[warehouseMsg.Order.CustomerId] = true;
             }
         }
         else
         {
             Console.WriteLine("Recieved message from one of all warehouses..");
             if (warehouseMsg.Order.IsAvailable || ++WarehouseReplyLimiter[warehouseMsg.Order.CustomerId] >= MAX_WAREHOUSES)
             {
                 RetailerReply reply = new RetailerReply()
                 {
                     ProductId = warehouseMsg.Order.ProductIds[0], IsAvailable = warehouseMsg.Order.IsAvailable
                 };
                 Bus.Send <RetailerReply>($"retailer.client.{warehouseMsg.Order.CustomerId}", reply);
                 CustomerRequests.RemoveAll(x => x.CustomerId == warehouseMsg.Order.CustomerId);
                 WarehouseReplyLimiter.Remove(warehouseMsg.Order.CustomerId);
                 HasPublished.Remove(warehouseMsg.Order.CustomerId);
                 Console.WriteLine($"Response sent to customer with client id: {warehouseMsg.Order.CustomerId}");
             }
         }
     }
 }
コード例 #4
0
        private static void HandleCustomerRequest(CustomerRequest req)
        {
            CustomerRequests.Add(req);
            HasPublished.Add(req.CustomerId, false);
            WarehouseReplyLimiter.Add(req.CustomerId, 0);
            Console.WriteLine($"Message recieved on (client.retailer). Client id: '{req.CustomerId}', Location: '{req.CountryCode}'");
            Order o = new Order {
                CustomerId = req.CustomerId, CountryCode = req.CountryCode
            };

            o.ProductIds.Add(req.ProductId);
            var retailerRequest = new RetailerRequest()
            {
                Order = o
            };

            Bus.Publish <RetailerRequest>(retailerRequest, $"retailer.warehouses.{req.CountryCode}");
        }
コード例 #5
0
    // Adds a new student to the table
    public int AddRequest(CustomerRequests customerrequests, SqlConnection connection)
    {
        //Create the SQL Query for inserting a product
        // No need for null value in in column if autoincrement
        string sqlQuery = String.Format("Insert into RequestEstimate (FName, LName, Phone, Email, Comments) Values('{0}', '{1}', '{2}', '{3}', '{4}');"
                                        + "Select @@Identity", customerrequests.fname, customerrequests.lname, customerrequests.phone, customerrequests.email, customerrequests.comments);


        //Create a Command object
        // new SqlCommand("query", "SqlConnection"
        int requestID = 0;

        using (SqlCommand command = new SqlCommand(sqlQuery, connection))
        {
            //SqlCommand.ExecuteNonQuery executes query with no reutrns
            requestID = Convert.ToInt32((decimal)command.ExecuteScalar());


            //Close and dispose
        }
        return(requestID);
    }
コード例 #6
0
 public Task <CustomerResult> Create(CustomerRequests request)
 {
     return(customerService.CreateCustomer(request));
 }
コード例 #7
0
 public Task <CustomerResult> CreateCustomer(CustomerRequests request)
 {
     return(customerRepository.CreateCustomer(request));
 }