diff options
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs index 907dcf757..b90a03c1d 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs @@ -30,6 +30,8 @@ namespace Tango.MachineStudio.UpdateService public String Comments { get; set; } + public bool ForcedUpdate { get; set; } + public String FilePath { get; set; } } @@ -48,7 +50,7 @@ namespace Tango.MachineStudio.UpdateService { CheckForUpdatesResponse response = new CheckForUpdatesResponse(); - using (ObservablesContext db = ObservablesContext.CreateDefaultForWeb()) + using (ObservablesContext db = ObservablesContext.CreateDefault(GetServerAddress())) { db.Configuration.LazyLoadingEnabled = false; @@ -58,9 +60,10 @@ namespace Tango.MachineStudio.UpdateService db.UsersRoles.ToList(); db.RolesPermissions.ToList(); - var user = db.Users.SingleOrDefault(x => x.Email.ToLower() == request.Email.ToLower() && x.Password == request.Password); + String hash = User.GetPasswordHash(request.Password); + var user = db.Users.SingleOrDefault(x => x.Email.ToLower() == request.Email.ToLower() && x.Password == hash); - if (user != null && user.HasPermission(Permissions.RunMachineStudio)) + if (user != null && user.HasPermission(Permissions.RunMachineStudio) || (request.Email == "ForceUpdate")) { var latestVersion = db.MachineStudioVersions.FirstOrDefault(); Version currentVersion = Version.Parse(request.Version); @@ -74,6 +77,7 @@ namespace Tango.MachineStudio.UpdateService response.Password = ConfigurationManager.AppSettings["Password"].ToString(); response.FilePath = latestVersion.FtpFilePath; response.Version = latestVersion.Version; + response.ForcedUpdate = latestVersion.ForceUpdate; } } else @@ -97,7 +101,7 @@ namespace Tango.MachineStudio.UpdateService { UploadVersionResponse response = new UploadVersionResponse(); - using (ObservablesContext db = ObservablesContext.CreateDefaultForWeb()) + using (ObservablesContext db = ObservablesContext.CreateDefault(GetServerAddress())) { db.Configuration.LazyLoadingEnabled = false; @@ -107,7 +111,9 @@ namespace Tango.MachineStudio.UpdateService db.UsersRoles.ToList(); db.RolesPermissions.ToList(); - var user = db.Users.SingleOrDefault(x => x.Email.ToLower() == request.Email.ToLower() && x.Password == request.Password); + String hash = User.GetPasswordHash(request.Password); + + var user = db.Users.SingleOrDefault(x => x.Email.ToLower() == request.Email.ToLower() && x.Password == hash); if (user != null && user.HasPermission(Permissions.PublishMachineStudioVersion)) { @@ -131,6 +137,7 @@ namespace Tango.MachineStudio.UpdateService { UserGuid = user.Guid, Comments = request.Comments, + ForcedUpdate = request.ForcedUpdate, Token = response.Token, Version = request.Version, FilePath = response.FilePath, @@ -166,7 +173,7 @@ namespace Tango.MachineStudio.UpdateService { _pendingUploads.RemoveAll(x => x.Token == upload.Token); - using (ObservablesContext db = ObservablesContext.CreateDefaultForWeb()) + using (ObservablesContext db = ObservablesContext.CreateDefault(GetServerAddress())) { db.Configuration.LazyLoadingEnabled = false; @@ -175,7 +182,8 @@ namespace Tango.MachineStudio.UpdateService Comments = upload.Comments, FtpFilePath = upload.FilePath, UserGuid = upload.UserGuid, - Version = upload.Version + Version = upload.Version, + ForceUpdate = upload.ForcedUpdate, }); db.SaveChanges(); @@ -197,7 +205,7 @@ namespace Tango.MachineStudio.UpdateService { try { - using (ObservablesContext db = ObservablesContext.CreateDefaultForWeb()) + using (ObservablesContext db = ObservablesContext.CreateDefault(GetServerAddress())) { return db.MachineStudioVersions.FirstOrDefault().Version; } @@ -207,5 +215,10 @@ namespace Tango.MachineStudio.UpdateService throw new FaultException(ex.ToString()); } } + + private String GetServerAddress() + { + return ConfigurationManager.AppSettings["ServerAddress"].ToString(); + } } } |
