Compare commits

...

2 Commits

Author SHA1 Message Date
a9fdec8332 BMC: Url Validation 2022-10-20 18:36:00 +05:30
0ede4ee972 BMC : Implement Proper response Message 2022-10-20 17:37:37 +05:30
3 changed files with 90 additions and 31 deletions

View File

@ -28,6 +28,7 @@ using System.Runtime.Intrinsics.X86;
using System.Text;
using System.IO;
using Abp.AutoMapper;
using Abp.Domain.Entities;
namespace BCS.BMC.Controllers
{
@ -248,42 +249,56 @@ namespace BCS.BMC.Controllers
}
[HttpPost]
public async Task<ActionResult> ValidateTenancy([FromBody] GetUrlDto input)
public async Task<IActionResult> ValidateTenancy([FromBody] GetUrlDto input)
{
Uri uri = new Uri(input.InputUrl, UriKind.Absolute);
var domain = uri.Host;
if (input.InputUrl == null)
if (string.IsNullOrWhiteSpace(input.InputUrl))
{
return BadRequest();
return BadRequest("Please Enter A Valid Url");
}
var company = await _companyMaster.FirstOrDefaultAsync(x => x.Url == input.InputUrl.ToString() || x.DomainName == domain);
var company = await _companyMaster.FirstOrDefaultAsync(x => x.DomainName == domain);
if (company == null)
{
return BadRequest();
return BadRequest("Url Not Found");
}
return Ok();
return Ok("Success");
}
[HttpPost]
public async Task<IActionResult> Login([FromBody] LoginInputModel input)
{
if (input.CompanyUrl == null)
var subDomainName = "";
var protocol = "";
if (string.IsNullOrWhiteSpace(input.CompanyUrl))
{
return BadRequest();
return BadRequest("Please Enter A Valid Url");
}
var company = await _companyMaster.FirstOrDefaultAsync(x => x.Url == input.CompanyUrl.ToString());
if(company == null)
{
return BadRequest();
}
using (HttpClient client = new HttpClient())
{
Uri uri = new Uri(input.CompanyUrl);
var baseUrl = uri + "api/BmcLogin";
var host = uri.Host;
protocol = uri.Scheme;
if (host.Split('.').Length > 2)
{
int lastIndex = host.LastIndexOf(".");
int index = host.LastIndexOf(".", lastIndex - 1);
var subdomain = host.Substring(0, index);
if (subdomain != "www")
{
subDomainName = subdomain;
}
}
var company = await _companyMaster.FirstOrDefaultAsync(x => x.DomainName == host);
if (company == null)
{
return BadRequest("Invalid Company Url");
}
// var baseUrl = uri + "api/BmcLogin";
var baseUrl = protocol + "://" + host + "/api/BmcLogin";
var data = new
{
usernameOrEmailAddress = input.UsernameOrEmailAddress,
@ -294,29 +309,47 @@ namespace BCS.BMC.Controllers
requestContent.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");
HttpResponseMessage response = await client.PostAsync(baseUrl, requestContent);
response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
var responseStream = await response.Content.ReadAsStringAsync();
return Ok(responseStream);
LoginOrRegisterResponseMessageModel result = JsonConvert.DeserializeObject<LoginOrRegisterResponseMessageModel>(responseStream);
return Ok(result);
}
return BadRequest();
else if (response.StatusCode == HttpStatusCode.InternalServerError)
{
var contents = await response.Content.ReadAsStringAsync();
ResponseMessageModel result = JsonConvert.DeserializeObject<ResponseMessageModel>(contents);
return BadRequest(result.error.message == "Login Failed" ? "Invalid Username Or Password" : result.error.message);
}
return Ok();
}
}
[HttpPost]
public async Task<IActionResult> Registration([FromBody] RegistrationInput input)
{
Uri uri = new Uri(input.CompanyUrl, UriKind.Absolute);
var domain = uri.Host;
if (string.IsNullOrWhiteSpace(input.CompanyUrl))
{
return BadRequest("Please Enter A Valid Url");
}
var company = await _companyMaster.FirstOrDefaultAsync(x => x.DomainName == domain);
if (company == null)
{
return BadRequest("Url Not Found");
}
using (HttpClient client = new HttpClient())
{
var baseUrl = input.Subdomain + "/api/services/bwac/employeeRegister/RegisterEmployeeAsNewUser";
var baseUrl = input.CompanyUrl + "/api/services/bwac/employeeRegister/RegisterEmployeeAsNewUser";
var data = new
{
tenancyName = "testmsnyc",
phoneNo = input.Phoneno,
userName = input.Email,
userName = input.UserNameOrEmail,
password = input.Password
};
var requestJson = JsonConvert.SerializeObject(data);
@ -328,7 +361,8 @@ namespace BCS.BMC.Controllers
if (response.IsSuccessStatusCode)
{
var responseStream = await response.Content.ReadAsStringAsync();
return Ok(responseStream);
LoginOrRegisterResponseMessageModel result = JsonConvert.DeserializeObject<LoginOrRegisterResponseMessageModel>(responseStream);
return Ok(result);
}
else if (response.StatusCode == HttpStatusCode.InternalServerError)
{

View File

@ -0,0 +1,24 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BCS.BMC.Models.TokenAuth
{
public class LoginOrRegisterResponseMessageModel
{
public result result { get; set; }
}
public class result
{
public int statusCode { get; set; }
public string userName { get; set; }
public string userId { get; set; }
public string employeeId { get; set; }
public string phoneNo { get; set; }
public string profilePictureId { get; set; }
}
}

View File

@ -10,11 +10,12 @@ namespace BCS.BMC.Models.TokenAuth
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public string Email { get; set; }
public string UserNameOrEmail { get; set; }
public string Phoneno { get; set; }
public string Password { get; set; }
public string Status { get; set; }
public string Protocol { get; set; }
public string CompanyUrl { get; set; }
public string Subdomain { get; set; }
public string Domain { get; set; }
}