public ResponseModel AuthenticateAsync([FromBody] UserDto userDto) { using (var db = new MiraclesContext()) { var user = db.TblUser.Where(o => o.UserName == userDto.Username && o.Password == userDto.Password).FirstOrDefault(); if (user != null) { var tokenHandler = new JwtSecurityTokenHandler(); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.UserName.ToString()) }), Expires = DateTime.UtcNow.AddDays(7000), }; var token = tokenHandler.CreateToken(tokenDescriptor); var tokenString = tokenHandler.WriteToken(token); user.Token = tokenString; db.SaveChanges(); return(new ResponseModel() { Status = 200, Data = tokenString, Message = "Login successfully" }); } } return(new ResponseModel() { Status = 400, Message = "Login failed" }); }
public ResponseModel InsertUser([FromBody] UserDto _userDto) { var rs = new ResponseModel() { Status = 200, Message = "Company account was created." }; try { using (var db = new MiraclesContext()) { db.TblUser.Add(new TblUser { UserName = _userDto.Username, Password = _userDto.Password, }); db.SaveChanges(); } } catch (Exception ex) { rs.Status = 500; rs.Message = "error: " + ex.Message; } return(rs); }
public Setting Get() { using (var db = new MiraclesContext()) { var rs = db.Setting.FirstOrDefault(); return(rs); } }
private long GetMiraclesID(long shopifyID) { using (var db = new MiraclesContext()) { var product = db.MappingOrder.FirstOrDefault(o => o.ShopifyId == shopifyID); if (product != null) { return(product.MiraclesId); } return(0); } }
public async Task <ResponseModel> PostData([FromBody] CompanyDto companyDto) { var json = JsonConvert.SerializeObject(companyDto); var data = new StringContent(json, Encoding.UTF8, "application/json"); var url = "http://staging.miraclecbdproducts.com/api/company/"; var rs = new ResponseModel() { Status = 200, Message = "Company account was created." }; try { using (var db = new MiraclesContext()) { using (var client = new HttpClient()) { HttpResponseMessage response = await client.PostAsync(url, data); if (!response.IsSuccessStatusCode) { rs.Status = 400; rs.Data = ""; rs.Message = ""; return(rs); } else { db.TblMcompany.Add(new TblMcompany { ContactPerson = companyDto.contact_person.Trim(), Name = companyDto.name.Trim(), PhoneNumber = companyDto.phone_number.Trim(), EmailAddress = companyDto.email_address.Trim(), Username = companyDto.username.Trim(), Password = companyDto.password.Trim(), CurrentPassword = companyDto.password.Trim(), ShopUrl = companyDto.shop_url.Trim() }); db.SaveChanges(); } } } } catch (Exception ex) { rs.Status = 500; rs.Message = "Error" + ex.Message; } return(rs); }
public async Task <ResponseModel> AutoAsyncMiraclesProduct() { using (var db = new MiraclesContext()) { try { var check = db.Setting.Select(o => o.AutoSyncProduct).FirstOrDefault(); if (check != true) { return(null); } await GetMiraclesProductAsync(); db.TblAuditLog.Add(new TblAuditLog { CreatedAt = DateTime.UtcNow, Message = "Auto sync is completed." }); db.SaveChanges(); return(new ResponseModel { Status = 200, Message = "Auto sync is completed." }); } catch (Exception ex) { var message = "Auto sync is failed. Message: " + ex.Message + ". Trace: " + ex.StackTrace; db.TblAuditLog.Add(new TblAuditLog { CreatedAt = DateTime.UtcNow, Message = message }); db.SaveChanges(); return(new ResponseModel { Status = 200, Message = message }); } } }
public TblMcompany GetCompanyProfile(string shopurl) { using (var db = new MiraclesContext()) { var result = db.TblMcompany.Where(o => o.ShopUrl == shopurl).FirstOrDefault(); return(new TblMcompany() { Id = result.Id, ContactPerson = result.ContactPerson.Trim(), Name = result.Name.Trim(), PhoneNumber = result.PhoneNumber, EmailAddress = result.EmailAddress.Trim(), Username = result.Username.Trim(), Password = result.Password.Trim(), CurrentPassword = result.CurrentPassword.Trim(), ShopUrl = result.ShopUrl.Trim() }); } }
public async Task <ResponseModel> UpdateProduct(int id, [FromBody] ProductDto productDto) { var rs = new ResponseModel() { Status = 200, Message = "Product was updated." }; try { using (var db = new MiraclesContext()) { var myShopifyUrl = _config.GetValue <string>("Shopify:Url"); var privateAppPassword = _config.GetValue <string>("Shopify:PrivateAppPassword"); var service = new ProductService(myShopifyUrl, privateAppPassword); var item = db.MappingOrder.FirstOrDefault(o => o.MiraclesId == id); if (item == null) { rs.Status = 400; rs.Message = "Dont have Product you want to update."; return(rs); } else { } } } catch (Exception ex) { rs.Status = 500; rs.Message = "error: " + ex.Message; } return(rs); }
public ResponseModel Post([FromBody] Setting _setting) { var rs = new ResponseModel() { Status = 200, Message = string.Empty }; try { var db = new MiraclesContext(); { var setting = db.Setting.FirstOrDefault(); if (setting != null) { setting.AutoSyncProduct = _setting.AutoSyncProduct; } else { setting = new Setting() { AutoSyncProduct = _setting.AutoSyncProduct }; db.Setting.Add(setting); } db.SaveChanges(); rs.Data = setting; } } catch (Exception ex) { rs.Status = 500; rs.Message = ex.Message; } return(rs); }
public async void SyncOrderAsync(Order shopifyorder) { var rs = new ResponseModel() { Status = 200, Message = string.Empty }; using (var httpClient = new HttpClient()) { var url = _config.GetValue <string>("miraclecbdproducts:Url"); var username = _config.GetValue <string>("miraclecbdproducts:username"); var password = _config.GetValue <string>("miraclecbdproducts:password"); var order = new OrderModel { username = username, password = password }; try { var client = new HttpClient { BaseAddress = new Uri(url) }; var phone = !string.IsNullOrEmpty(shopifyorder.Phone) ? shopifyorder.Phone : "0123456789"; if (shopifyorder.BillingAddress != null) { var address2 = !string.IsNullOrEmpty(shopifyorder.BillingAddress.Address2) ? shopifyorder.BillingAddress.Address2 : shopifyorder.BillingAddress.Address1; order.billing_address_first_name = shopifyorder.BillingAddress.FirstName; order.billing_address_last_name = shopifyorder.BillingAddress.LastName; order.billing_address_address1 = shopifyorder.BillingAddress.Address1; order.billing_address_address2 = address2; order.billing_address_city = shopifyorder.BillingAddress.City; order.billing_address_zip_code = shopifyorder.BillingAddress.Zip; order.billing_address_state = shopifyorder.BillingAddress.Province; order.billing_address_email = shopifyorder.Email; order.billing_address_phone = phone; } else { order.billing_address_first_name = "John"; order.billing_address_last_name = "Doe"; order.billing_address_address1 = "123 Billing Street"; order.billing_address_address2 = "123 Billing Street"; order.billing_address_city = "Billtown"; order.billing_address_zip_code = "K2P0B0"; order.billing_address_state = "Kentucky"; order.billing_address_email = "*****@*****.**"; order.billing_address_phone = "0123456789"; } if (shopifyorder.ShippingAddress != null) { var address2 = !string.IsNullOrEmpty(shopifyorder.ShippingAddress.Address2) ? shopifyorder.ShippingAddress.Address2 : shopifyorder.ShippingAddress.Address1; order.shipping_address_first_name = shopifyorder.ShippingAddress.FirstName; order.shipping_address_last_name = shopifyorder.ShippingAddress.LastName; order.shipping_address_address1 = shopifyorder.ShippingAddress.Address1; order.shipping_address_address2 = address2; order.shipping_address_city = shopifyorder.ShippingAddress.City; order.shipping_address_zip_code = shopifyorder.ShippingAddress.Zip; order.shipping_address_state = shopifyorder.ShippingAddress.Province; order.shipping_address_email = shopifyorder.Email; order.shipping_address_phone = phone; } else { order.shipping_address_first_name = "John"; order.shipping_address_last_name = "Doe"; order.shipping_address_address1 = "123 shipping Street"; order.shipping_address_address2 = "123 shipping Street"; order.shipping_address_city = "Billtown"; order.shipping_address_zip_code = "K2P0B0"; order.shipping_address_state = "Kentucky"; order.shipping_address_email = "*****@*****.**"; order.shipping_address_phone = "0123456789"; } order.ip_address = "192.168.0.1"; order.products = new List <ProductModel>(); foreach (var product in shopifyorder.LineItems) { var miraclesID = GetMiraclesID(product.ProductId.Value); if (miraclesID != 0) { order.products.Add(new ProductModel { id = miraclesID, quantity = product.Quantity }); } } if (order.products.Count() == 0) { rs.Status = 500; rs.Message = "Order does not have any product"; } else { var miraclesData = JsonConvert.SerializeObject(order); var content = new StringContent(miraclesData, Encoding.UTF8, "application/json"); var response = client.PostAsync(url, content).Result; rs.Status = (int)response.StatusCode; } rs.Data = order; } catch (Exception ex) { rs.Status = 500; rs.Message = ex.Message; } using (var db = new MiraclesContext()) { var inputData = JsonConvert.SerializeObject(shopifyorder); var miraclesData = JsonConvert.SerializeObject(order); var message = "Status: " + rs.Status + "; Message: " + rs.Message; if (rs.Status != 200) { message += "; Input Data: " + inputData; message += "; Miracles Data: " + miraclesData; message += "; Miracles URL: " + url; } db.TblAuditLog.Add(new TblAuditLog() { CreatedAt = DateTime.UtcNow, Message = message }); db.SaveChanges(); } } }
public static async Task <ResponseModel> AddProduct(Product product, string myShopifyUrl, string privateAppPassword) { var rs = new ResponseModel() { Status = 200, Message = string.Empty }; try { using (var db = new MiraclesContext()) { var service = new ProductService(myShopifyUrl, privateAppPassword); if (!product.Id.HasValue) { rs.Status = 500; rs.Message = "Product ID is required"; return(rs); } if (string.IsNullOrEmpty(product.Title)) { rs.Status = 500; rs.Message = "Title is required"; return(rs); } long miraclesID = product.Id.Value; var item = db.MappingOrder.FirstOrDefault(o => o.MiraclesId == miraclesID); var shopifyProduct = new Product(); if (item != null) { shopifyProduct = await service.UpdateAsync(item.ShopifyId, product); } else { shopifyProduct = await service.CreateAsync(product); } if (!shopifyProduct.Id.HasValue) { rs.Status = 500; rs.Message = "Can not detect product ID from Shopify. Value: " + shopifyProduct.Id; return(rs); } var shopifyID = shopifyProduct.Id.Value; if (item == null) { db.MappingOrder.Add(new MappingOrder() { MiraclesId = miraclesID, ShopifyId = shopifyID }); } db.SaveChanges(); } rs.Data = product; } catch (Exception ex) { rs.Status = 500; rs.Message = ex.Message; } return(rs); }
public async Task <ResponseModel> UpdateCompany(string username, [FromBody] CompanyDto _companyDto) { var json = JsonConvert.SerializeObject(_companyDto); var data = new StringContent(json, Encoding.UTF8, "application/json"); var url = "http://staging.miraclecbdproducts.com/api/company/"; var rs = new ResponseModel() { Status = 200, Message = "Company account was updated." }; try { using (var db = new MiraclesContext()) { using (var client = new HttpClient()) { HttpResponseMessage response = await client.PatchAsync(url, data); if (!response.IsSuccessStatusCode) { rs.Status = 400; rs.Data = ""; rs.Message = ""; return(rs); } else { var item = db.TblMcompany.Where(o => o.Username == username).FirstOrDefault(); if (item != null) { if (_companyDto.contact_person != null) { item.ContactPerson = _companyDto.contact_person.Trim(); } if (_companyDto.name != null) { item.Name = _companyDto.name.Trim(); } if (_companyDto.phone_number != null) { item.PhoneNumber = _companyDto.phone_number.Trim(); } if (_companyDto.email_address != null) { item.EmailAddress = _companyDto.email_address.Trim(); } if (_companyDto.confirm_new_password != null) { item.Password = _companyDto.confirm_new_password.Trim(); item.CurrentPassword = _companyDto.confirm_new_password.Trim(); } if (_companyDto.shop_url != null) { item.ShopUrl = _companyDto.shop_url.Trim(); } } db.SaveChanges(); } } } } catch (Exception ex) { rs.Status = 500; rs.Message = "Error" + ex.Message; } return(rs); }
public ResponseModel ImportScanData(ImportDataModel postData) { var res = new ResponseModel() { Status = "201", Message = "", }; // check role, login info. using (var db = new MiraclesContext()) { var user = db.TblUsers.FirstOrDefault(o => o.UserName == postData.User); #region Validate if (user == null) { res.Message = "Account with user name " + postData.User + " is not existed"; res.Status = "500"; return(res); } if (user.Token != postData.Token) { res.Message = "Token is not correct"; res.Status = "500"; return(res); } if (user.RoleId != Constant.Users.Admin && user.RoleId != Constant.Users.User && user.RoleId != Constant.Users.Superadmin) { res.Message = "You dont have permission to do."; res.Status = "500"; return(res); } #endregion try { Guid g; g = Guid.NewGuid(); var x = new TblScanData { ScanId = g.ToString(), Uid = user.Id, CreatedOn = DateTime.UtcNow, StationName = postData.StationName, Payload = postData.ScanData.Payload, DataType = postData.ScanData.DataType, FileName = postData.ScanData.FileName, Status = postData.ScanData.Status, DeletedOn = null, }; db.TblScanData.Add(x); db.SaveChanges(); x.U = null; res.Message = "Scan data is created"; //res.Data = x; } catch (Exception ex) { res.Status = "500"; res.Message = ex.Message; } } return(res); }