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 })); } }
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 })); } }
/// <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"); } }
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 })); } }
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 })); } }
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 })); } }
/// <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); } }
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 })); } }
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 })); } }
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 })); } }
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 })); } }