public object Update(string email, IFormCollection collection) { string oldPassword = PasswordUtils.MD5Crypt(collection["oldPassword"]); string newPassword = PasswordUtils.MD5Crypt(collection["newPassword"]); var dbFactory = new AdminDataContextFactory(dataProvider: SQLiteTools.GetDataProvider(), connectionString: ConnectionString); Task <Admin> admin; using (var db = dbFactory.Create()) { admin = db.GetTable <Admin>().FirstOrDefaultAsync(c => c.Email.Equals(email) && c.Password.Equals(oldPassword)); if (admin.Result != null) { db.Update(new Admin { Email = email, Password = newPassword }); return("Password changed"); } else { return("Old password wrong, or an error occurred."); } } }
public async Task <IActionResult> Index(IFormCollection collection) { string email = collection["email"]; string password = PasswordUtils.MD5Crypt(collection["password"]); var dbFactory = new AdminDataContextFactory(dataProvider: SQLiteTools.GetDataProvider(), connectionString: ConnectionString); Task <Admin> admin; using (var db = dbFactory.Create()) admin = db.GetTable <Admin>().FirstOrDefaultAsync(c => c.Email.Equals(email) && c.Password.Equals(password)); if (admin.Result != null) { ViewBag.AdminEmail = email; return(View(new DoctorsPatients { Doctors = await DoctorController.Read(), Patients = await PatientCollectionController.Read() })); } else { TempData["ErrorAdminMessage"] = "Mail or password wrong"; return(Redirect("~/signin")); } }
public List <Admin> Read() { var dbFactory = new AdminDataContextFactory(dataProvider: SQLiteTools.GetDataProvider(), connectionString: ConnectionString); List <Admin> admins = new List <Admin>(); using (var db = dbFactory.Create()) { admins = db.GetTable <Admin>().ToList(); } return(admins); }
public object Create(IFormCollection collection) { string email = collection["mailNewAdmin"]; string passwordNotCrypted = PasswordUtils.PasswordGenerator(); string password = PasswordUtils.MD5Crypt(passwordNotCrypted); var dbFactory = new AdminDataContextFactory(dataProvider: SQLiteTools.GetDataProvider(), connectionString: ConnectionString); using (var db = dbFactory.Create()) { db.InsertOrReplace(new Admin { Email = email, Password = password }); try { (new Emailer(MailData)).SendEmail(email, "Congratulations! You have just become a layw administrator. Your login data:\n" + "Mail: " + email + "\n" + "Password: "******"\n" + "Remember to change your password. Thank you for your help.\n\nTeam LAYW", "Team LAYW"); } catch (SmtpException) { db.Delete(new Admin { Email = email, Password = password }); return("Error. Maybe the inserted email is invalid, or there are connection errors. Try again."); } catch (FormatException) { db.Delete(new Admin { Email = email, Password = password }); return("Invalid email format"); } } return("Successfully added"); }
public void ConfigureServices(IServiceCollection services) { services.Configure <Kendo>(Configuration.GetSection("kendo")); services.Configure <Theme>(Configuration.GetSection("theme")); services.Configure <Logo>(Configuration.GetSection("logo")); services.Configure <ChartGoalPatientPageInfo>(Configuration.GetSection("chart-goal-patient-page-info")); services.Configure <ChartHomepageInfo>(Configuration.GetSection("chart-homepage-info")); var settingsLaywGmail = Configuration.GetSection("layw-gmail-data").Get <MailData>(); services.AddSingleton(settingsLaywGmail); var settingsDoctorAccount = Configuration.GetSection("doctor-account").Get <DoctorAccount>(); services.AddSingleton(settingsDoctorAccount); var settingsServerIP = Configuration.GetSection("server-ip").Get <ServerIP>(); services.AddSingleton(settingsServerIP); var settingsJsonStructure = Configuration.GetSection("json-structure").Get <JsonStructure>(); services.AddSingleton(settingsJsonStructure); var settingsDb = Configuration.GetConnectionString("layw-db"); services.AddSingleton(settingsDb); var settingsHomepageChartInfo = Configuration.GetSection("chart-homepage-info").Get <ChartHomepageInfo>(); services.AddSingleton(settingsHomepageChartInfo); services.AddSingleton(new MQTTClient(Configuration.GetSection("mqtt-info").Get <MQTTInfo>(), settingsJsonStructure)); services.AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; }) .AddCookie(options => { options.LoginPath = "/login"; options.LogoutPath = "/signout"; }) .AddGoogle(options => { var configuration = Configuration.GetSection("google-codes").Get <OAuthCodes>(); options.ClientId = configuration.ClientId; options.ClientSecret = configuration.ClientSecret; options.Events = new OAuthEvents { OnCreatingTicket = context => { Uri apiRequestUri = new Uri("https://www.googleapis.com/oauth2/v2/userinfo?access_token=" + context.AccessToken); dynamic result = JsonConvert.DeserializeObject(APIUtils.Get(apiRequestUri.ToString()).ToString()); context.Identity.AddClaim(new Claim(ClaimTypes.Uri, (string)result.picture, ClaimValueTypes.String, "Google")); return(Task.FromResult(0)); } }; }) .AddFacebook(options => { var configuration = Configuration.GetSection("facebook-codes").Get <OAuthCodes>(); options.ClientId = configuration.ClientId; options.ClientSecret = configuration.ClientSecret; options.Events = new OAuthEvents { OnCreatingTicket = context => { Uri apiRequestUri = new Uri("https://graph.facebook.com/me/picture?redirect&type=large&access_token=" + context.AccessToken); dynamic result = JsonConvert.DeserializeObject(APIUtils.Get(apiRequestUri.ToString()).ToString()); context.Identity.AddClaim(new Claim(ClaimTypes.Uri, (string)result.data.url, ClaimValueTypes.String, "Facebook")); return(Task.FromResult(0)); } }; }); services.AddSession(options => { options.Cookie.Name = ".Layw.Session"; }); var dbFactory = new AdminDataContextFactory( dataProvider: SQLiteTools.GetDataProvider(), connectionString: Configuration.GetConnectionString("layw-db") ); services.AddSingleton <IDataContextFactory <AdminDataContext> >(dbFactory); SetupDatabase(dbFactory); services.AddSignalR(); services.AddMvc(); }