Skip to content

Commit 658d9d5

Browse files
committed
Fix connection string and DB generation
1 parent 5fed5b1 commit 658d9d5

28 files changed

+188
-456
lines changed

eFormAPI/eFormAPI/Controllers/AccountController.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Linq;
34
using System.Net.Http;
45
using System.Security.Claims;
56
using System.Security.Cryptography;
@@ -43,13 +44,16 @@ public EformUserManager UserManager
4344
[Route("user-info")]
4445
public UserInfoViewModel GetUserInfo()
4546
{
46-
var externalLogin = ExternalLoginData.FromIdentity(User.Identity as ClaimsIdentity);
47-
47+
var user = UserManager.FindById(User.Identity.GetUserId<int>());
48+
if (user == null)
49+
{
50+
return null;
51+
}
4852
return new UserInfoViewModel
4953
{
50-
Email = User.Identity.GetUserName(),
51-
HasRegistered = externalLogin == null,
52-
LoginProvider = externalLogin?.LoginProvider
54+
Email = user.Email,
55+
Id = user.Id,
56+
UserName = user.UserName
5357
};
5458
}
5559

eFormAPI/eFormAPI/Controllers/AuthController.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Net.Http;
22
using System.Web.Http;
33
using eFormAPI.Web.Infrastructure.Identity;
4+
using eFromAPI.Common.API;
45
using Microsoft.AspNet.Identity.Owin;
56
using Microsoft.Owin.Security;
67
using Microsoft.Owin.Security.Cookies;
@@ -35,10 +36,10 @@ public EformUserManager UserManager
3536

3637
// POST api/Account/Logout
3738
[Route("logout")]
38-
public IHttpActionResult Logout()
39+
public OperationResult Logout()
3940
{
4041
Authentication.SignOut(CookieAuthenticationDefaults.AuthenticationType);
41-
return Ok();
42+
return new OperationResult(true);
4243
}
4344

4445
protected override void Dispose(bool disposing)

eFormAPI/eFormAPI/Controllers/SettingsController.cs

Lines changed: 54 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,108 @@
11
using System;
22
using System.Configuration;
3+
using System.Data.Common;
4+
using System.Data.Entity;
35
using System.Data.Entity.Infrastructure;
46
using System.Data.Entity.Migrations;
57
using System.IO;
8+
using System.Linq;
69
using System.Web.Configuration;
710
using System.Web.Http;
11+
using eFormAPI.Web.Infrastructure.Data;
12+
using eFormAPI.Web.Migrations;
813
using eFormCore;
914
using eFromAPI.Common.API;
1015
using eFromAPI.Common.Models.Settings;
11-
using Configuration = eFormAPI.Web.Migrations.Configuration;
16+
using NLog;
1217

1318
namespace eFormAPI.Web.Controllers
1419
{
1520
[AllowAnonymous]
1621
public class SettingsController : ApiController
1722
{
23+
private readonly Logger Logger = LogManager.GetCurrentClassLogger();
24+
25+
[HttpGet]
26+
[Route("api/settings/connection-string-exist")]
27+
public OperationResult ConnectionStringExist()
28+
{
29+
var inputPath = System.Web.Hosting.HostingEnvironment.MapPath("~/bin/Input.txt");
30+
if (File.Exists(inputPath))
31+
{
32+
return new OperationResult(true);
33+
}
34+
return new OperationResult(false);
35+
}
36+
1837
[HttpPost]
38+
[Route("api/settings/connection-string")]
1939
public OperationResult ConnectionString(SettingsModel settingsModel)
2040
{
21-
2241
if (!ModelState.IsValid) return new OperationResult(false, "Required fields are not filled");
23-
24-
string inputPath = System.Web.Hosting.HostingEnvironment.MapPath("~/bin/Input.txt");
42+
43+
var inputPath = System.Web.Hosting.HostingEnvironment.MapPath("~/bin/Input.txt");
2544
AdminTools adminTools;
26-
string sdkConnectionString = "Data Source="
27-
+ settingsModel.ConnectionStringSdk.Source + ";Initial Catalog="
28-
+ settingsModel.ConnectionStringSdk.Catalogue + ";"
29-
+ settingsModel.ConnectionStringSdk.Auth;
45+
var sdkConnectionString = "Data Source="
46+
+ settingsModel.ConnectionStringSdk.Source + ";Initial Catalog="
47+
+ settingsModel.ConnectionStringSdk.Catalogue + ";"
48+
+ settingsModel.ConnectionStringSdk.Auth;
3049

31-
string mainConnectionString = "Data Source="
32-
+ settingsModel.ConnectionStringMain.Source + ";Initial Catalog="
33-
+ settingsModel.ConnectionStringMain.Catalogue + ";"
34-
+ settingsModel.ConnectionStringMain.Auth;
50+
var mainConnectionString = "Data Source="
51+
+ settingsModel.ConnectionStringMain.Source + ";Initial Catalog="
52+
+ settingsModel.ConnectionStringMain.Catalogue + ";"
53+
+ settingsModel.ConnectionStringMain.Auth;
3554

3655
try
3756
{
38-
if (!File.Exists(inputPath))
39-
File.Create(inputPath);
40-
41-
using (StreamWriter newTask = new StreamWriter(inputPath, false))
57+
if (File.Exists(inputPath))
4258
{
43-
newTask.WriteLine(sdkConnectionString);
44-
}
59+
File.Delete(inputPath);
60+
var fileStream = File.Create(inputPath);
61+
fileStream.Dispose();
62+
}
63+
else
64+
{
65+
var fileStream = File.Create(inputPath);
66+
fileStream.Dispose();
67+
}
68+
File.WriteAllText(inputPath, sdkConnectionString);
4569
}
46-
catch (Exception)
70+
catch (Exception exception)
4771
{
72+
Logger.Error(exception.Message);
4873
return new OperationResult(false, "Could not write connection string in /bin/Input.txt");
4974
}
50-
51-
5275
try
5376
{
5477
adminTools = new AdminTools(sdkConnectionString);
5578
}
56-
catch
79+
catch (Exception exception)
5780
{
81+
Logger.Error(exception.Message);
5882
return new OperationResult(false, "SDK connection string is invalid");
5983
}
6084

6185
var configuration = WebConfigurationManager.OpenWebConfiguration("~");
62-
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings");
86+
var section = (ConnectionStringsSection) configuration.GetSection("connectionStrings");
6387
section.ConnectionStrings["eFormMainConnection"].ConnectionString = mainConnectionString;
64-
6588
try
6689
{
6790
configuration.Save();
68-
69-
var configure = new Configuration() {TargetDatabase = new DbConnectionInfo("eFormMainConnection")
91+
ConfigurationManager.RefreshSection("connectionStrings");
92+
var migrationConfiguration = new EformMigrationsConfiguration(mainConnectionString)
93+
{
94+
TargetDatabase = new DbConnectionInfo(mainConnectionString, "System.Data.SqlClient")
7095
};
71-
72-
var migrator = new DbMigrator(configure);
96+
var migrator = new DbMigrator(migrationConfiguration);
7397
migrator.Update();
7498
}
75-
catch(Exception e)
99+
catch (Exception exception)
76100
{
101+
Logger.Error(exception.Message);
77102
return new OperationResult(false, "Main connection string is invalid");
78103
}
79104

80-
81-
82105
adminTools.DbSetup(settingsModel.ConnectionStringSdk.Token);
83-
84106
return new OperationResult(true);
85107
}
86108
}

eFormAPI/eFormAPI/Controllers/SimpleSitesController.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,7 @@ public OperationResult Update(SimpleSiteModel simpleSiteModel)
6767
? new OperationResult(true, "Worker was updated successfully")
6868
: new OperationResult(false, $"Worker with id {simpleSiteModel.Id} could not be updated!");
6969
}
70-
else
71-
{
72-
return new OperationResult(false, "Worker with such UId could not be obtained");
73-
}
70+
return new OperationResult(false, "Worker with such UId could not be obtained");
7471
}
7572
return new OperationResult(false, "Worker UId not found");
7673
}

eFormAPI/eFormAPI/Controllers/TemplatesController.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ public OperationDataResult<List<Template_Dto>> Index()
6363
}
6464
catch (Exception)
6565
{
66-
return new OperationDataResult<List<Template_Dto>>(false, "Connection is missing");
66+
throw new HttpResponseException(HttpStatusCode.Unauthorized);
6767
}
6868
}
6969

eFormAPI/eFormAPI/Infrastructure/Data/BaseDbContext.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,15 @@ public BaseDbContext()
1212
{
1313
Configuration.ProxyCreationEnabled = false;
1414
Configuration.LazyLoadingEnabled = false;
15+
Database.SetInitializer<BaseDbContext>(null);
16+
}
17+
18+
public BaseDbContext(string connectionString)
19+
: base(connectionString)
20+
{
21+
Configuration.ProxyCreationEnabled = false;
22+
Configuration.LazyLoadingEnabled = false;
23+
Database.SetInitializer<BaseDbContext>(null);
1524
}
1625

1726
public static BaseDbContext Create()

eFormAPI/eFormAPI/Infrastructure/Helpers/EFormCoreHelper.cs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ namespace eFormAPI.Web.Infrastructure.Helpers
1010
{
1111
public class EFormCoreHelper
1212
{
13-
private Core _core = null;
14-
private Logger Logger = LogManager.GetCurrentClassLogger();
13+
private Core _core;
14+
private readonly Logger Logger = LogManager.GetCurrentClassLogger();
1515

1616
#region ExceptionHandling
1717

@@ -53,7 +53,7 @@ public Core GetCore()
5353
}
5454
catch (Exception)
5555
{
56-
throw new HttpResponseException(HttpStatusCode.Forbidden);
56+
throw new HttpResponseException(HttpStatusCode.Unauthorized);
5757
}
5858

5959

@@ -78,11 +78,9 @@ public Core GetCore()
7878
{
7979
return _core;
8080
}
81-
else
82-
{
83-
throw new Exception("Core is not running");
84-
//return null;
85-
}
81+
Logger.Error("Core is not running");
82+
throw new Exception("Core is not running");
83+
//return null;
8684
}
8785

8886
#region events

eFormAPI/eFormAPI/Migrations/201707161835437_InitialCreate.Designer.cs

Lines changed: 0 additions & 29 deletions
This file was deleted.

eFormAPI/eFormAPI/Migrations/201707161835437_InitialCreate.cs

Lines changed: 0 additions & 102 deletions
This file was deleted.

0 commit comments

Comments
 (0)