public ActionResult GetClientDetail([FromQuery(Name = "clientName")] string clientName) { try { string connString = Startup.Configuration["MetadataDatabase:ConnectionString"]; _clientValidationDA = new ClientValidationDA(); var result = _clientValidationDA.ClientDetail(clientName, connString); if (result.ReturnValue == -1) { return(BadRequest(new ErrorResponseDTO() { MessageCode = result.Result, ErrorType = "Bad Request", RequestId = HttpContext.TraceIdentifier.ToString() })); } else { SuccessResponseDTO <ClientDTO> loginSuccessDTO = new SuccessResponseDTO <ClientDTO>().CreateSuccessResponse(result.Table, result.Result, HttpContext.TraceIdentifier.ToString()); return(Ok(loginSuccessDTO)); } } catch (Exception ex) { //_logger.LogCritical(ex.ToString()); return(StatusCode(500, new ErrorResponseDTO() { MessageCode = "Inernal server error", RequestId = HttpContext.TraceIdentifier.ToString(), ErrorType = ex.Message.ToString() })); } }
public async Task <IActionResult> LoginAsync(LoginRequestModel loginRequestModel) { SuccessResponseDTO <LoginResponseModel> loginResponseModel = new SuccessResponseDTO <LoginResponseModel>(); if (ModelState.IsValid) { loginResponseModel = await _mediator.Send(new LoginUserCommand() { Email = loginRequestModel.Email, Password = loginRequestModel.Password, TenantName = loginRequestModel.TenantName, SceretKey = _appSettings.EncryptionKey, JWTAuth = _jwtAuth }); } else { ErrorResponseDTO err = new ErrorResponseDTO { TenantName = loginRequestModel.TenantName, ErrorType = "required input is missing", MessageCode = "500", RequestId = Convert.ToString(Guid.NewGuid()) }; return(Ok(err)); } return(Ok(loginResponseModel)); }
public async Task <ActionResult> GetLocalLogin([FromBody] LoginDTO loginInfo) { StringValues clientConnectionString; try { if (HttpContext.Request.Headers.TryGetValue("ConnectionString", out clientConnectionString)) { if (ModelState.IsValid) { _loginDA = new LoginDA(); var result = _loginDA.GetLocalLogin(loginInfo, clientConnectionString); if (result.ReturnValue == -1) { return(BadRequest(new ErrorResponseDTO() { MessageCode = _messageCodePrefix + result.Result, ErrorType = "Bad Request", RequestId = HttpContext.TraceIdentifier.ToString() })); } else { //result.Table.AuthorizationToken = GenearteJWTToken.GenerateToken(result.Table.UserId.ToString()); //dynamic response = await GenearteJWTToken.GenerateToken(); //if (response.ToString() != "Token Invalid") // result.Table.AuthenticationToken = ((Newtonsoft.Json.Linq.JValue)((Newtonsoft.Json.Linq.JProperty)((Newtonsoft.Json.Linq.JContainer)response).Last).Value).Value.ToString(); //else // return BadRequest(); SuccessResponseDTO <LoginDTO> loginSuccessDTO = new SuccessResponseDTO <LoginDTO>().CreateSuccessResponse(result.Table, _messageCodePrefix + result.Result, HttpContext.TraceIdentifier.ToString()); return(Ok(loginSuccessDTO)); } } else { return(BadRequest()); } } else { return(BadRequest()); } } catch (Exception ex) { _logger.LogCritical(ex.ToString()); return(StatusCode(500, new ErrorResponseDTO() { MessageCode = "Inernal server error", RequestId = HttpContext.TraceIdentifier.ToString(), ErrorType = ex.Message.ToString() })); } }
public async Task <IActionResult> CalculatePriceAsync(string goldPrice, string weight, string discount, string tenantName) { SuccessResponseDTO <string> totalPrice = await _mediator.Send(new CalculatePriceCommand() { Discount = discount, GoldPrice = goldPrice, Weight = weight, TenantName = tenantName }); return(Ok(totalPrice)); }
public async Task <FileStreamResult> DownloadFileAsync(string goldPrice, string weight, string discount, string totalPrice, string tenantName) { SuccessResponseDTO <PrintModel> response = await _mediator.Send(new PrintPDFCommand() { Discount = discount, GoldPrice = goldPrice, Weight = weight, TenantName = tenantName, TotalPrice = totalPrice }); //Defining the ContentType for pdf file. string contentType = "application/pdf"; //Define the file name. string fileName = $"{tenantName}{DateTime.UtcNow}.pdf"; return(File(response?.Response?.stream, contentType, fileName)); }
public async Task <SuccessResponseDTO <PrintModel> > Handle(PrintPDFCommand request, CancellationToken cancellationToken) { SuccessResponseDTO <PrintModel> successResponseDTO = new SuccessResponseDTO <PrintModel>(); try { //Create a new PDF document PdfDocument doc = new PdfDocument(); //Add a page PdfPage page = doc.Pages.Add(); //Create a PdfGrid PdfGrid pdfGrid = new PdfGrid(); //Create a DataTable DataTable dataTable = new DataTable(); //Add columns to the DataTable dataTable.Columns.Add("GoldPrice"); dataTable.Columns.Add("Weight"); dataTable.Columns.Add("Discount"); dataTable.Columns.Add("Total Price"); //Add rows to the DataTable dataTable.Rows.Add(new object[] { request.GoldPrice, request.Weight, request.Discount, request.TotalPrice }); //Assign data source pdfGrid.DataSource = dataTable; //Draw grid to the page of PDF document pdfGrid.Draw(page, 10, 10, 40); //Save the PDF document to stream MemoryStream stream = new MemoryStream(); doc.Save(stream); //If the position is not set to '0' then the PDF will be empty. stream.Position = 0; //Close the document. doc.Close(true); PrintModel printModel = new PrintModel() { stream = stream }; successResponseDTO = new SuccessResponseDTO <PrintModel>().CreateSuccessResponse(printModel, "500", "document created", "", "", request.TenantName); } catch (Exception ex) { successResponseDTO = new SuccessResponseDTO <PrintModel>().CreateSuccessResponse(null, "500", ex.ToString(), "", "", request.TenantName); } return(successResponseDTO); }
public async Task <SuccessResponseDTO <string> > Handle(CalculatePriceCommand request, CancellationToken cancellationToken) { SuccessResponseDTO <string> successResponseDTO = new SuccessResponseDTO <string>(); try { if (string.IsNullOrEmpty(request.Discount)) { successResponseDTO = new SuccessResponseDTO <string>().CreateSuccessResponse(Convert.ToString(Convert.ToInt32(request.GoldPrice) * Convert.ToInt32(request.Weight)), "200", "price calculated sucessfully", "", "", request.TenantName); } else { string price = Convert.ToString((Convert.ToInt32(request.GoldPrice) * Convert.ToInt32(request.Weight) / Convert.ToInt32(request.Discount))); successResponseDTO = new SuccessResponseDTO <string>().CreateSuccessResponse(price, "200", "price calculated sucessfully", "", "", request.TenantName); } } catch (Exception ex) { successResponseDTO = new SuccessResponseDTO <string>().CreateSuccessResponse("", "500", ex.ToString(), "", "", request.TenantName); } return(successResponseDTO); }
public async Task <SuccessResponseDTO <LoginResponseModel> > Handle(LoginUserCommand request, CancellationToken cancellationToken) { SuccessResponseDTO <LoginResponseModel> successResponseDTO; try { if (!string.IsNullOrEmpty(request.Password)) { //decrypt password string password = EncryptionDecryptionUsingSymmetricKey.EncryptString(request.SceretKey, request.Password); if (!string.IsNullOrEmpty(request.Email)) { string email = request.Email?.Split("@")[0]; //get tenant id from db Guid TenantId = _jewelleryContext.Tenants.Where(t => t.TenantName == request.TenantName).Select(t => t.TenantId).FirstOrDefault(); if (TenantId != null && TenantId != Guid.Empty) { //get user details from db LoginResponseModel loginResponseModel = _jewelleryContext.Users.Where(u => u.TenantId == TenantId && u.IsActive && u.UserName == email && u.Password == password).Join(_jewelleryContext.Roles, user => user.RoleId, role => role.RoleId, (user, role) => new LoginResponseModel { TenantId = user.TenantId, Email = user.UserName, FirstName = user.FirstName, LastName = user.LastName, Role = role.RoleName, UserId = user.UserId, IsDiscount = role.RoleName == Constants.Privileged ? true : false }).FirstOrDefault(); if (loginResponseModel != null) { //generate jwt token string token = request.JWTAuth.GenerateToken(loginResponseModel, DateTime.UtcNow.AddMinutes(60)); if (!string.IsNullOrEmpty(token)) { var user = _jewelleryContext.Users.Where(u => u.UserId == loginResponseModel.UserId).First(); user.Token = token; _jewelleryContext.SaveChanges(); loginResponseModel.Token = token; successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(loginResponseModel, "200", Constants.Sucessfully_logged_in, Convert.ToString(loginResponseModel.TenantId), "", request.TenantName); return(successResponseDTO); } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(loginResponseModel, "500", Constants.Token_is_not_generated, Convert.ToString(loginResponseModel.TenantId), "", request.TenantName); return(successResponseDTO); } } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", Constants.Username_or_password_is_incorrect, null, "", request.TenantName); return(successResponseDTO); } } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", Constants.Client_doesn_not_exist, "", "", request.TenantName); return(successResponseDTO); } } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", Constants.Email_is_required, "", "", request.TenantName); return(successResponseDTO); } } else { successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", Constants.Password_is_required, "", "", request.TenantName); return(successResponseDTO); } } catch (Exception ex) { //log exception successResponseDTO = new SuccessResponseDTO <LoginResponseModel>().CreateSuccessResponse(new LoginResponseModel(), "500", ex.ToString(), "", "", request.TenantName); return(successResponseDTO); } }