예제 #1
0
        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()
            }));
        }
예제 #3
0
        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"));
        }
예제 #6
0
        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");
        }
예제 #7
0
        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);
        }