public async Task <bool> GenerateOtp(string uid, string toemail) { var op = _otps.AsQueryable().OrderByDescending(x => x.CreatedAt).Where(x => x.userId == ObjectId.Parse(uid) && x.status == "active").FirstOrDefault(); Random generator = new Random(); String r = generator.Next(0, 1000000).ToString("D6"); if (op == null) { await _otps.InsertOneAsync(new otp() { CreatedAt = DateTime.Now, otpvalue = r, status = "active", userId = ObjectId.Parse(uid) }); var res = EmailConfig.SendEmail("Confidential Mail", "One Time Password Is " + r + " Please don't Share it to any one", toemail, _email); } else { op.status = "deactive"; await _otps.ReplaceOneAsync(op); await _otps.InsertOneAsync(new otp() { CreatedAt = DateTime.Now, otpvalue = r, status = "active", userId = ObjectId.Parse(uid) }); var res = EmailConfig.SendEmail("Confidential Mail", "One Time Password Is " + r + " Please don't Share it to any one", toemail, _email); } return(true); }
public async Task <IActionResult> LoadLogs([FromBody] DtParameters parameters) { var searchBy = parameters.Search?.Value; var orderCriteria = string.Empty; var orderAscendingDirection = true; if (parameters.Order != null) { // in this example we just default sort on the 1st column orderCriteria = "CreatedAt"; orderAscendingDirection = parameters.Order[0].Dir.ToString().ToLower() != "asc"; } else { // if we have an empty search then just order the results by Id ascending orderCriteria = "CreatedAt"; orderAscendingDirection = false; } var result = HttpContext.User.IsInRole("Admin") ? _log.AsQueryable() : _log.AsQueryable().Where(x => x.userId == ObjectId.Parse(HttpContext.User.Identity.Name)); if (!string.IsNullOrEmpty(searchBy)) { result = result.Where(r => r.events != null && r.events.ToUpper().Contains(searchBy.ToUpper()) || r.message != null && r.message.ToUpper().Contains(searchBy.ToUpper()) ); } result = orderAscendingDirection ? result.AsQueryable().OrderByDynamic(orderCriteria, DtOrderDir.Asc) : result.AsQueryable().OrderByDynamic(orderCriteria, DtOrderDir.Desc); // now just get the count of items (without the skip and take) - eg how many could be returned with filtering var filteredResultsCount = result.Count(); var cntdb = HttpContext.User.IsInRole("Admin") ? _log.AsQueryable() : _log.AsQueryable().Where(x => x.userId == ObjectId.Parse(HttpContext.User.Identity.Name)); var u = _user.Users.AsEnumerable(); var totalResultsCount = cntdb.Count(); return(Json(new { draw = parameters.Draw, recordsTotal = totalResultsCount, recordsFiltered = filteredResultsCount, data = result .Skip(parameters.Start) .Take(parameters.Length) .AsEnumerable().Select(x => new LogModel() { userId = u.SingleOrDefault(s => s.Id == x.userId).UserName, message = x.message, events = x.events, createdAt = x.Id.CreationTime }).ToList() })); }
public async Task <T> ReturnObjectData <T>(string id) { var obj = typeof(T).Name; if (obj.Equals("EditDeviceSchema")) { var obdata = _device.AsQueryable().Where(x => x.Id == ObjectId.Parse(id)).FirstOrDefault() == null ? new Devices() : _device.AsQueryable().Where(x => x.Id == ObjectId.Parse(id)).FirstOrDefault(); return((T)Convert.ChangeType(new EditDeviceSchema() { name = obdata.name, mac = obdata.mac, userId = obdata.userId, Id = obdata.Id.ToString() }, typeof(T))); } else if (obj.Equals("EmailSchema")) { var obdata = _emails.AsQueryable().FirstOrDefault() == null ? new email() : _emails.AsQueryable().FirstOrDefault(); return((T)Convert.ChangeType(new EmailSchema() { emailaddress = obdata.emailaddress, name = obdata.name, password = "", smtpport = obdata.smtpport, smtpserver = obdata.smtpserver, Id = obdata.Id.ToString() }, typeof(T))); } return((T)Convert.ChangeType(null, typeof(T))); }
public async Task <IActionResult> LoadDevices([FromBody] DtParameters parameters) { var searchBy = parameters.Search?.Value; var orderCriteria = string.Empty; var orderAscendingDirection = true; if (parameters.Order != null) { // in this example we just default sort on the 1st column orderCriteria = "CreatedAt"; orderAscendingDirection = parameters.Order[0].Dir.ToString().ToLower() != "asc"; } else { // if we have an empty search then just order the results by Id ascending orderCriteria = "CreatedAt"; orderAscendingDirection = false; } var result = _device.AsQueryable(); if (!string.IsNullOrEmpty(searchBy)) { result = result.Where(r => r.name != null && r.name.ToUpper().Contains(searchBy.ToUpper()) || r.userId != null && r.userId.ToUpper().Contains(searchBy.ToUpper()) ); } result = orderAscendingDirection ? result.AsQueryable().OrderByDynamic(orderCriteria, DtOrderDir.Asc) : result.AsQueryable().OrderByDynamic(orderCriteria, DtOrderDir.Desc); // now just get the count of items (without the skip and take) - eg how many could be returned with filtering var filteredResultsCount = result.Count(); var cntdb = _device.AsQueryable(); var totalResultsCount = cntdb.Count(); return(Json(new { draw = parameters.Draw, recordsTotal = totalResultsCount, recordsFiltered = filteredResultsCount, data = result .Skip(parameters.Start) .Take(parameters.Length).ToList() })); }
public async Task <IActionResult> PostData([FromBody] RecordData data) { var div = _device.AsQueryable().Where(x => x.mac == data.mac).FirstOrDefault(); ClientAccess access = new ClientAccess(); var res = access.postMedicalRecord(div.userId, "set", Convert.ToBase64String(Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(data)))); if (res != null) { var r = await _clientKey.SwatoothKeyStore(res.encoderSettings, res.obj); return(Ok("Success")); } return(BadRequest("Invalid Request")); }
public async static Task <string> SendEmail(string subject, string msg, string toemail, IGenericBL <email> email) { var e = email.AsQueryable().FirstOrDefault(); if (e != null) { MailMessage mail = new MailMessage(); SmtpClient SmtpServer = new SmtpClient(e.smtpserver); mail.From = new MailAddress(e.emailaddress); mail.To.Add(toemail); mail.Subject = subject; mail.Body = msg; SmtpServer.Port = 587; SmtpServer.Credentials = new System.Net.NetworkCredential(e.emailaddress, e.password); SmtpServer.EnableSsl = true; ServicePointManager.ServerCertificateValidationCallback = delegate(object es, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return(true); }; try { await SmtpServer.SendMailAsync(mail); return("Ok"); } catch (Exception ex) { return(ex.Message); } } return("Email No Configured"); }
public async Task <dynamic> SwatoothRetriveData(dynamic data, string user) { var dat = _key.AsQueryable().Where(x => x.uname == user); var dlist = new List <MRecord>(); foreach (var k in dat) { var settings = Newtonsoft.Json.JsonConvert.DeserializeObject <EncoderSettings>(k.keysettings); if (settings.SignerPublickey.Length > 0) { var d = CBORObject.DecodeFromBytes(Convert.FromBase64String(k.certficate)); var c = d["Value"].AsString(); var re = Encoding.UTF8.GetString(Convert.FromBase64String(c)); var obj = Newtonsoft.Json.JsonConvert.DeserializeObject <RecordData>(re); dlist.Add(new MRecord() { uname = user, bp = obj.bp, createdAt = k.CreatedAt }); } } return(dlist); }