コード例 #1
0
 public ActionResult GetOrderById(int orderid)
 {
     try
     {
         var checkData = MH.CheckForDatas("OrderId", orderid, null, null, "OrderDB", "OrderInfo");
         if (checkData != null)
         {
             return(Ok(new ResponseData
             {
                 Code = "200",
                 Message = "Success",
                 Data = BsonSerializer.Deserialize <OrderInfo>(checkData)
             }));
         }
         else
         {
             return(BadRequest(new ResponseData
             {
                 Code = "404",
                 Message = "No orders found",
                 Data = null
             }));
         }
     }
     catch (Exception ex)
     {
         LoggerDataAccess.CreateLog("OrderController", "GetOrdersOfUser", ex.Message);
         return(BadRequest(new ResponseData
         {
             Code = "400",
             Message = "Failed",
             Data = ex.Message
         }));
     }
 }
コード例 #2
0
        public async Task <ActionResult> Subscribe(string emailid)
        {
            try
            {
                if (emailid != null)
                {
                    var checkUser = MH.CheckForDatas("Email", emailid, null, null, "SubscribeDB", "SubscribedUsers");
                    if (checkUser == null)
                    {
                        await _db.GetCollection <Subscribe>("SubscribedUsers").InsertOneAsync(new Subscribe {
                            Email = emailid
                        });

                        var sendEmail = EmailHelper.SendEmail_NewsLetterService(emailid);
                        return(Ok(new ResponseData
                        {
                            Code = "200",
                            Message = "Subscribed Succesfully",
                            Data = null
                        }));
                    }
                    else
                    {
                        return(BadRequest(new ResponseData
                        {
                            Code = "401",
                            Message = "User Already Subscribed",
                            Data = null
                        }));
                    }
                }
                else
                {
                    return(BadRequest(new ResponseData
                    {
                        Code = "402",
                        Message = "EmailId connot be empty",
                        Data = null
                    }));
                }
            }
            catch (Exception ex)
            {
                LoggerDataAccess.CreateLog("AdminContoller", "Subscribe", ex.Message);
                return(BadRequest(new ResponseData
                {
                    Code = "400",
                    Message = "Failed",
                    Data = ex.Message
                }));
            }
        }
コード例 #3
0
 /// <summary>Send email to user who subscribes for news letter service</summary>
 /// <param name="emailReceiver"></param>
 /// <param name="orderId"></param>
 public static async Task <string> SendEmail_ProductDetails(string emailReceiver, long orderId)
 {
     try
     {
         string emailSender = GlobalHelper.ReadXML().Elements("email").Where(x => x.Element("current").Value.Equals("Yes")).Descendants("emailsender").First().Value;
         var    orderInfo   = BsonSerializer.Deserialize <OrderInfo>(MongoHelper.CheckForDatas("OrderId", orderId, null, null, "OrderDB", "OrderInfo"));
         foreach (var product in orderInfo.ProductDetails)
         {
             Address billingAddress  = new Address();
             Address deliveryAddress = new Address();
             foreach (var address in orderInfo.Address)
             {
                 if (address.BillingAddress == true)
                 {
                     billingAddress = address;
                 }
                 if (address.ShippingAddress == true)
                 {
                     deliveryAddress = address;
                 }
             }
             using (var client = new AmazonSimpleEmailServiceClient(GetCredentials("accesskey"), GetCredentials("secretkey"), Amazon.RegionEndpoint.USWest2))
             {
                 var sendRequest = new SendEmailRequest
                 {
                     Source      = emailSender,
                     Destination = new Destination {
                         ToAddresses = new List <string> {
                             emailReceiver
                         }
                     },
                     Message = new Message
                     {
                         Subject = new Content(GlobalHelper.ReadXML().Elements("email").Where(x => x.Element("current").Value.Equals("Yes")).Descendants("emailsubject6").First().Value),
                         Body    = new Body
                         {
                             Html = new Content(CreateEmailBody_ProductDetails(orderInfo, product.ProductSKU, billingAddress, deliveryAddress, product))
                         }
                     }
                 };
                 var responce = await client.SendEmailAsync(sendRequest);
             }
         }
         return("Success");
     }
     catch (Exception ex)
     {
         LoggerDataAccess.CreateLog("EmailHelper", "SendEmail_ProductDetails", ex.Message);
         return("Failed");
     }
 }
コード例 #4
0
        public ActionResult Unsubscribe(string username)
        {
            try
            {
                if (username != null)
                {
                    var user = MH.CheckForDatas("UserName", username, null, null, "SubscribeDB", "SubscribedUsers");
                    if (user != null)
                    {
                        var filter = Builders <BsonDocument> .Filter.Eq("UserName", username);

                        MH.DeleteSingleObject(filter, "SubscribeDB", "SubscribedUsers");
                        return(Ok(new ResponseData
                        {
                            Code = "200",
                            Message = "Unsubscribed Succesfully",
                            Data = null
                        }));
                    }
                    else
                    {
                        return(BadRequest(new ResponseData
                        {
                            Code = "404",
                            Message = "No user found",
                            Data = null
                        }));
                    }
                }
                else
                {
                    return(BadRequest(new ResponseData
                    {
                        Code = "402",
                        Message = "UserName connot be empty",
                        Data = null
                    }));
                }
            }
            catch (Exception ex)
            {
                LoggerDataAccess.CreateLog("AdminContoller", "Unsubscribe", "Unsubscribe", ex.Message);
                return(BadRequest(new ResponseData
                {
                    Code = "400",
                    Message = "Failed",
                    Data = ex.Message
                }));
            }
        }
コード例 #5
0
        public async Task <ActionResult> Subscribe(string username)
        {
            try
            {
                if (username != null)
                {
                    var user = MH.CheckForDatas("UserName", username, null, null, "SubscribeDB", "SubscribedUsers");
                    if (user == null)
                    {
                        var collection = _db.GetCollection <Subscribe>("SubscribedUsers");
                        await collection.InsertOneAsync(new Subscribe { UserName = username });

                        return(Ok(new ResponseData
                        {
                            Code = "200",
                            Message = "Subscribed Succesfully",
                            Data = null
                        }));
                    }
                    else
                    {
                        return(BadRequest(new ResponseData
                        {
                            Code = "401",
                            Message = "User Already Subscribed",
                            Data = null
                        }));
                    }
                }
                else
                {
                    return(BadRequest(new ResponseData
                    {
                        Code = "402",
                        Message = "UserName connot be empty",
                        Data = null
                    }));
                }
            }
            catch (Exception ex)
            {
                LoggerDataAccess.CreateLog("AdminContoller", "Subscribe", "Subscribe", ex.Message);
                return(BadRequest(new ResponseData
                {
                    Code = "400",
                    Message = "Failed",
                    Data = ex.Message
                }));
            }
        }
コード例 #6
0
        public async Task <ActionResult> InsertRole([FromBody] Roles data)
        {
            try
            {
                if (MH.CheckForDatas("RoleName", data.RoleName, null, null, "RolesDB", "Roles") != null)
                {
                    return(BadRequest(new ResponseData
                    {
                        Code = "401",
                        Message = "Another role with same name is found",
                        Data = null
                    }));
                }
                else if (MH.CheckForDatas("RoleID", data.RoleID, null, null, "RolesDB", "Roles") != null)
                {
                    return(BadRequest(new ResponseData
                    {
                        Code = "402",
                        Message = "Another role with same role id is found",
                        Data = null
                    }));
                }
                else
                {
                    await MH._client.GetDatabase("RolesDB").GetCollection <Roles>("Roles").InsertOneAsync(data);

                    return(Ok(new ResponseData
                    {
                        Code = "200",
                        Message = "Role inserted successfully",
                        Data = null
                    }));
                }
            }
            catch (Exception ex)
            {
                LoggerDataAccess.CreateLog("AdminContoller", "InsertRole", ex.Message);
                return(BadRequest(new ResponseData
                {
                    Code = "400",
                    Message = "Failed",
                    Data = ex.Message
                }));
            }
        }
コード例 #7
0
 /// <summary>Send gift through email after payment success</summary>
 /// <param name="orderId"></param>
 public static string SendGift(long orderId)
 {
     try
     {
         var checkOrder = MongoHelper.CheckForDatas("OrderId", orderId, null, null, "OrderDB", "OrderInfo");
         if (checkOrder != null)
         {
             var           orderInfo       = BsonSerializer.Deserialize <OrderInfo>(checkOrder);
             List <string> productInfoList = new List <string>();
             foreach (var product in orderInfo.ProductDetails)
             {
                 productInfoList.Add(product.ProductSKU);
             }
             var productInfoString = String.Join(":", productInfoList);
             var sendGift          = EmailHelper.SendGift(orderId, productInfoString);
         }
         return("Success");
     }
     catch (Exception ex)
     {
         LoggerDataAccess.CreateLog("GlobalHelper", "SendGift", ex.Message);
         return(null);
     }
 }
コード例 #8
0
 public ActionResult AssignRole(string username, string rolename)
 {
     try
     {
         var checkuser = MH.CheckForDatas("UserName", username, null, null, "Authentication", "Authentication");
         if (checkuser != null)
         {
             var updateRole = MH.UpdateSingleObject(Builders <BsonDocument> .Filter.Eq("UserName", username), "Authentication", "Authentication", Builders <BsonDocument> .Update.Set("UserRole", rolename));
             return(Ok(new ResponseData
             {
                 Code = "200",
                 Message = "Role assigned to user",
                 Data = null
             }));
         }
         else
         {
             return(BadRequest(new ResponseData
             {
                 Code = "404",
                 Message = "User not found",
                 Data = null
             }));
         }
     }
     catch (Exception ex)
     {
         LoggerDataAccess.CreateLog("AdminContoller", "InsertRoles", ex.Message);
         return(BadRequest(new ResponseData
         {
             Code = "400",
             Message = "Failed",
             Data = ex.Message
         }));
     }
 }
コード例 #9
0
 public ActionResult ReturnOrder(string request, int orderid, string productSKU)
 {
     if (request == "refund" || request == "replace")
     {
         try
         {
             var checkData = MH.CheckForDatas("OrderId", orderid, null, null, "OrderDB", "OrderInfo");
             if (checkData != null)
             {
                 var orderDetails = BsonSerializer.Deserialize <OrderInfo>(checkData);
                 if (orderDetails.OrderStatus == "Order Delivered")
                 {
                     foreach (var product in orderDetails.ProductDetails)
                     {
                         if (product.ProductSKU == productSKU)
                         {
                             foreach (var status in product.StatusCode)
                             {
                                 if (status.Description == "Order Delivered")
                                 {
                                     if (DateTime.UtcNow > status.Date.AddDays(15))
                                     {
                                         return(BadRequest(new ResponseData
                                         {
                                             Code = "407",
                                             Message = "Return request cannot be processed as it has been more than 15 days from delivery",
                                             Data = null
                                         }));
                                     }
                                 }
                             }
                         }
                     }
                     var checkProduct = MH.CheckForDatas("ProductSKU", productSKU, null, null, "ProductDB", "Product");
                     if (checkProduct != null)
                     {
                         var productData = BsonSerializer.Deserialize <Product>(checkData);
                         if (request == "refund")
                         {
                             if (productData.RefundApplicable == true)
                             {
                                 List <ProductDetails> productDetails = new List <ProductDetails>();
                                 foreach (var product in orderDetails.ProductDetails)
                                 {
                                     if (product.ProductSKU == productSKU)
                                     {
                                         product.Status = "Order Refund Initiated";
                                         List <StatusCode> statusList = new List <StatusCode>();
                                         foreach (var status in product.StatusCode)
                                         {
                                             statusList.Add(status);
                                         }
                                         statusList.Add(new StatusCode {
                                             Date = DateTime.UtcNow, StatusId = 8, Description = "Order Refund Initiated"
                                         });
                                     }
                                     productDetails.Add(product);
                                 }
                                 var updateProductDetails = MH.UpdateSingleObject(Builders <BsonDocument> .Filter.Eq("OrderId", orderid), "OrderDB", "OrderInfo", Builders <BsonDocument> .Update.Set("ProductDetails", productDetails)).Result;
                                 if (updateProductDetails == false)
                                 {
                                     return(BadRequest(new ResponseData
                                     {
                                         Code = "408",
                                         Message = "Product details status update failed",
                                         Data = null
                                     }));
                                 }
                                 //if(orderDetails.PaymentMethod != "COD")
                                 //{
                                 //Need to refund amount
                                 //}
                                 return(Ok(new ResponseData
                                 {
                                     Code = "201",
                                     Message = "Payment Refund Initiated",
                                     Data = null
                                 }));
                             }
                             else
                             {
                                 return(BadRequest(new ResponseData
                                 {
                                     Code = "403",
                                     Message = "Refund not applicable for this product",
                                     Data = null
                                 }));
                             }
                         }
                         else
                         {
                             if (productData.ReplacementApplicable == true)
                             {
                                 List <ProductDetails> productDetails = new List <ProductDetails>();
                                 foreach (var product in orderDetails.ProductDetails)
                                 {
                                     if (product.ProductSKU == productSKU)
                                     {
                                         product.Status = "Order Replacement Initiated";
                                         List <StatusCode> statusList = new List <StatusCode>();
                                         foreach (var status in product.StatusCode)
                                         {
                                             statusList.Add(status);
                                         }
                                         statusList.Add(new StatusCode {
                                             Date = DateTime.UtcNow, StatusId = 6, Description = "Order Replacement Initiated"
                                         });
                                     }
                                     productDetails.Add(product);
                                 }
                                 var updateProductDetails = MH.UpdateSingleObject(Builders <BsonDocument> .Filter.Eq("OrderId", orderid), "OrderDB", "OrderInfo", Builders <BsonDocument> .Update.Set("ProductDetails", productDetails)).Result;
                                 if (updateProductDetails == false)
                                 {
                                     return(BadRequest(new ResponseData
                                     {
                                         Code = "408",
                                         Message = "Product details status update failed",
                                         Data = null
                                     }));
                                 }
                                 return(Ok(new ResponseData
                                 {
                                     Code = "202",
                                     Message = "Product replacement initiated",
                                     Data = null
                                 }));
                             }
                             else
                             {
                                 return(BadRequest(new ResponseData
                                 {
                                     Code = "405",
                                     Message = "Replacement not applicable for this product",
                                     Data = null
                                 }));
                             }
                         }
                     }
                     else
                     {
                         return(BadRequest(new ResponseData
                         {
                             Code = "402",
                             Message = "Product not found",
                             Data = null
                         }));
                     }
                 }
                 else
                 {
                     return(BadRequest(new ResponseData
                     {
                         Code = "406",
                         Message = "Return request cannot be processed as the product is not delivered",
                         Data = null
                     }));
                 }
             }
             else
             {
                 return(BadRequest(new ResponseData
                 {
                     Code = "404",
                     Message = "Order not found",
                     Data = null
                 }));
             }
         }
         catch (Exception ex)
         {
             LoggerDataAccess.CreateLog("OrderController", "CancelOrder", ex.Message);
             return(BadRequest(new ResponseData
             {
                 Code = "400",
                 Message = "Failed",
                 Data = ex.Message
             }));
         }
     }
     else
     {
         return(BadRequest(new ResponseData
         {
             Code = "401",
             Message = "Invalid request",
             Data = null
         }));
     }
 }
コード例 #10
0
 public ActionResult CancelOrder(int orderid, string productSKU)
 {
     try
     {
         var checkData = MH.CheckForDatas("OrderId", orderid, null, null, "OrderDB", "OrderInfo");
         if (checkData != null)
         {
             var orderDetails = BsonSerializer.Deserialize <OrderInfo>(checkData);
             if (MH.CheckForDatas("ProductSKU", productSKU, null, null, "ProductDB", "Product") != null)
             {
                 List <ProductDetails> productDetails = new List <ProductDetails>();
                 foreach (var product in orderDetails.ProductDetails)
                 {
                     if (product.ProductSKU == productSKU)
                     {
                         if (product.Status == "Order Delivered")
                         {
                             return(BadRequest(new ResponseData
                             {
                                 Code = "401",
                                 Message = "Cancel request cannot be processed as the product is delivered",
                                 Data = null
                             }));
                         }
                         else if (product.Status == "Order Cancelled")
                         {
                             return(BadRequest(new ResponseData
                             {
                                 Code = "402",
                                 Message = "Order already cancelled",
                                 Data = null
                             }));
                         }
                         else if (product.Status == "Order Replaced" || orderDetails.OrderStatus == "Order Refunded")
                         {
                             return(BadRequest(new ResponseData
                             {
                                 Code = "403",
                                 Message = "Cancel request cannot be processed as the order status is " + orderDetails.OrderStatus,
                                 Data = null
                             }));
                         }
                         product.Status = "Order Cancelled";
                         List <StatusCode> statusCode = new List <StatusCode>();
                         foreach (var status in product.StatusCode)
                         {
                             statusCode.Add(status);
                         }
                         statusCode.Add(new StatusCode {
                             Date = DateTime.UtcNow, StatusId = 4, Description = "Order Cancelled"
                         });
                         product.StatusCode = statusCode;
                     }
                     productDetails.Add(product);
                 }
                 var updateOrderStatus = MH.UpdateSingleObject(Builders <BsonDocument> .Filter.Eq("OrderId", orderid), "OrderDB", "OrderInfo", Builders <BsonDocument> .Update.Set("OrderStatus", "Order Cancelled")).Result;
                 if (updateOrderStatus == false)
                 {
                     return(BadRequest(new ResponseData
                     {
                         Code = "405",
                         Message = "Order status update failed",
                         Data = null
                     }));
                 }
                 var updateProductDetails = MH.UpdateSingleObject(Builders <BsonDocument> .Filter.Eq("OrderId", orderid), "OrderDB", "OrderInfo", Builders <BsonDocument> .Update.Set("ProductDetails", productDetails)).Result;
                 if (updateProductDetails == false)
                 {
                     return(BadRequest(new ResponseData
                     {
                         Code = "406",
                         Message = "Order cancelled status update failed",
                         Data = null
                     }));
                 }
                 //if(orderDetails.PaymentMethod != "COD")
                 //{
                 //Need to refund amount
                 //}
                 return(Ok(new ResponseData
                 {
                     Code = "200",
                     Message = "Order cancelled",
                     Data = null
                 }));
             }
             else
             {
                 return(BadRequest(new ResponseData
                 {
                     Code = "407",
                     Message = "Product not found",
                     Data = null
                 }));
             }
         }
         else
         {
             return(BadRequest(new ResponseData
             {
                 Code = "404",
                 Message = "Order not found",
                 Data = null
             }));
         }
     }
     catch (Exception ex)
     {
         LoggerDataAccess.CreateLog("OrderController", "CancelOrder", ex.Message);
         return(BadRequest(new ResponseData
         {
             Code = "400",
             Message = "Failed",
             Data = ex.Message
         }));
     }
 }
コード例 #11
0
 public ActionResult UpdateDeliveryStatus(int orderid, string status)
 {
     try
     {
         var checkData = MH.CheckForDatas("OrderId", orderid, null, null, "OrderDB", "OrderInfo");
         if (checkData != null)
         {
             var orderDetails = BsonSerializer.Deserialize <OrderInfo>(checkData);
             if (status != "Order Replaced" || status != "Order Refunded")
             {
                 var updateOrderStatus = MH.UpdateSingleObject(Builders <BsonDocument> .Filter.Eq("OrderId", orderid), "OrderDB", "OrderInfo", Builders <BsonDocument> .Update.Set("OrderStatus", status)).Result;
                 if (updateOrderStatus == false)
                 {
                     return(BadRequest(new ResponseData
                     {
                         Code = "401",
                         Message = "Order status update failed",
                         Data = null
                     }));
                 }
             }
             List <ProductDetails> productDetails = new List <ProductDetails>();
             foreach (var product in orderDetails.ProductDetails)
             {
                 product.Status = status;
                 List <StatusCode> statusList = new List <Data.StatusCode>();
                 foreach (var data in product.StatusCode)
                 {
                     statusList.Add(data);
                 }
                 int statusId = 0;
                 if (status == "Packing In Progress")
                 {
                     statusId = 2;
                 }
                 else if (status == "Order Shipped")
                 {
                     statusId = 3;
                 }
                 else if (status == "Order Delivered")
                 {
                     statusId = 5;
                 }
                 else if (status == "Order Replaced")
                 {
                     statusId = 7;
                 }
                 else if (status == "Order Refunded")
                 {
                     statusId = 9;
                 }
                 statusList.Add(new StatusCode {
                     StatusId = statusId, Date = DateTime.UtcNow, Description = status
                 });
                 product.StatusCode = statusList;
                 productDetails.Add(product);
             }
             var updateProductDetails = MH.UpdateSingleObject(Builders <BsonDocument> .Filter.Eq("OrderId", orderid), "OrderDB", "OrderInfo", Builders <BsonDocument> .Update.Set("ProductDetails", productDetails)).Result;
             if (updateProductDetails == false)
             {
                 return(BadRequest(new ResponseData
                 {
                     Code = "402",
                     Message = "Product details order status update failed",
                     Data = null
                 }));
             }
             return(Ok(new ResponseData
             {
                 Code = "200",
                 Message = "Status updated",
                 Data = null
             }));
         }
         else
         {
             return(BadRequest(new ResponseData
             {
                 Code = "404",
                 Message = "Order not found",
                 Data = null
             }));
         }
     }
     catch (Exception ex)
     {
         LoggerDataAccess.CreateLog("OrderController", "UpdateDeliveryStatus", ex.Message);
         return(BadRequest(new ResponseData
         {
             Code = "400",
             Message = "Failed",
             Data = ex.Message
         }));
     }
 }