private void AutoUploadDocument <T>(T document) where T : Document { using (var context = new ConnectContext()) { var companyKey = FetchClaimValue(ConnectConstants.ConnectCompanyKeyClaim); var existingDocument = FindDocuments <T>(context, document.RegistrationNumber, companyKey); bool hasExisting = existingDocument.Any(); foreach (var item in existingDocument) { if (item.Equals(document)) { hasExisting = true; break; } } if (!hasExisting) { document.UserId = GetUserId(); context.Set <T>().Add(document); context.SaveChanges(); var serializedData = new SerializedData { DocumentType = typeof(T).FullName, DocumentId = document.Id, Data = document.SerializedData }; context.Set <SerializedData>().Add(serializedData); context.SaveChanges(); } } }
public ConnectUserNode GetUserNode() { using (var context = new ConnectContext()) { return(GetUserNode(context)); } }
public void UploadTechnician(Technician technician) { using (var context = new ConnectContext()) { var userId = GetUserId(); technician.UserId = userId; technician.Uploaded = DateTime.Now; var technicians = context.Technicians.Where(c => c.UserId == userId); var technicianId = 0; var match = technicians.FirstOrDefault(c => string.Equals(c.Name, technician.Name) && string.Equals(c.Number, technician.Number)); if (match != null) { technicianId = match.Id; } technician.Id = technicianId; if (technicianId == 0) { context.Set <Technician>().Add(technician); } else { context.Entry(match).CurrentValues.SetValues(technician); } context.SaveChanges(); } }
private void AutoUploadReport <T>(T report) where T : BaseReport { using (var context = new ConnectContext()) { var existingDocument = FindReports <T>(context, report.CentreName); bool hasExisting = existingDocument.Any(); foreach (var item in existingDocument) { if (item.Equals(report)) { hasExisting = true; break; } } if (!hasExisting) { report.Id = 0; report.User = null; report.ConnectUserId = GetUserId(); context.Set <T>().Add(report); context.SaveChanges(); } } }
public ConnectUserNode GetUserNode(ConnectContext context) { var connectKeys = GetConnectKeys(); var connectUser = context.UserNodes.Include(x => x.ConnectUser).FirstOrDefault(c => c.CompanyKey == connectKeys.CompanyKey && c.MachineKey == connectKeys.MachineKey); return(connectUser ?? new ConnectUserNode(connectKeys)); }
private void UpdateDocument <T>(T document) where T : Document { using (var context = new ConnectContext()) { var companyKey = FetchClaimValue(ConnectConstants.ConnectCompanyKeyClaim); var existingDocument = FindDocument <T>(context, document.RegistrationNumber, companyKey); if (existingDocument != null) { document.Id = existingDocument.Id; document.UserId = GetUserId(); context.Entry(existingDocument).CurrentValues.SetValues(document); context.SaveChanges(); var documentType = typeof(T).FullName; var serializedData = context.SerializedData.FirstOrDefault(c => c.DocumentId == document.Id && c.DocumentType == documentType); if (serializedData != null) { serializedData.Data = document.SerializedData; context.SaveChanges(); } } } }
public ConnectUser GetConnectUser() { using (var context = new ConnectContext()) { var connectKeys = GetConnectKeys(); return(GetUser(context, connectKeys.CompanyKey, connectKeys.MachineKey)); } }
public ConnectServiceHost(params Uri[] addresses) : base(typeof(ConnectService), addresses) { Database.SetInitializer(new Initializer()); using (var context = new ConnectContext()) { context.Database.CreateIfNotExists(); } }
public void UploadCustomerContact(CustomerContact customerContact) { using (var context = new ConnectContext()) { customerContact.UserId = GetUserId(); customerContact.Uploaded = DateTime.Now; context.CustomerContacts.Add(customerContact); context.SaveChanges(); } }
private static IQueryable <T> FindReports <T>(ConnectContext context, string tachoCentreName) where T : BaseReport { return(context.Set <T>() .Where(doc => doc.CentreName == tachoCentreName) .OrderByDescending(doc => doc.Created) .Join(context.UserNodes, rep => rep.ConnectUserId, user => user.ConnectUser.Id, (doc, user) => new { user.CompanyKey, Report = doc }) .Select(a => a.Report)); }
private void UploadReport <T>(T report) where T : BaseReport { using (var context = new ConnectContext()) { report.Id = 0; report.User = null; report.ConnectUserId = GetUserId(); context.Set <T>().Add(report); context.SaveChanges(); } }
private static Exception IsAuthorized(IConnectKeys connectKeys) { Exception result = null; if (!LicenseManager.IsValid(connectKeys.LicenseKey.ToString())) { return(new FaultException("The license key is invalid or has expired.")); } try { using (var context = new ConnectContext()) { var company = context.Users.FirstOrDefault(c => c.CompanyKey == connectKeys.CompanyKey); if (company == null) { result = new FaultException("Your computer is not currently authorized to use Connect at this time."); } if (result == null) { var connectUserNode = context.UserNodes.FirstOrDefault(c => c.MachineKey == connectKeys.MachineKey && c.CompanyKey == connectKeys.CompanyKey); if (connectUserNode == null) { var connectUser = context.Users.FirstOrDefault(c => c.CompanyKey == connectKeys.CompanyKey); if (connectUser == null) { result = new FaultException("Your computer is not currently authorized to use Connect at this time."); return(result); } context.UserNodes.Add(new ConnectUserNode(connectKeys) { IsAuthorized = true, ConnectUser = connectUser }); context.SaveChanges(); return(null); } if (!connectUserNode.IsAuthorized) { result = new FaultException("Your computer is not currently authorized to use Connect at this time."); } } } } catch (Exception ex) { result = new FaultException("An unexcepted error occurred; " + ex.Message); } return(result); }
public void UploadDetailedException(DetailedException detailedException) { using (var context = new ConnectContext()) { var existing = context.DetailedExceptions.Any(c => c.ExceptionDetails == detailedException.ExceptionDetails); if (!existing) { detailedException.UserId = GetUserId(); context.DetailedExceptions.Add(detailedException); context.SaveChanges(); } } }
private static IQueryable <T> FindDocuments <T>(ConnectContext context, string registrationNumber, string companyKey) where T : Document { return(context.Set <T>() .Where(doc => doc.RegistrationNumber == registrationNumber) .OrderByDescending(doc => doc.Created) .Join(context.UserNodes, doc => doc.UserId, user => user.ConnectUser.Id, (doc, user) => new { user.CompanyKey, Document = doc }) .Where(b => b.CompanyKey == companyKey) .Select(a => a.Document)); }
public int GetUserId() { using (var context = new ConnectContext()) { var connectKeys = GetConnectKeys(); var user = GetUser(context, connectKeys.CompanyKey, connectKeys.MachineKey); if (user != null) { return(user.Id); } return(-1); } }
public void UploadWorkshopSettings(WorkshopSettings workshopSettings) { using (var context = new ConnectContext()) { workshopSettings.Id = 0; workshopSettings.UserId = GetUserId(); workshopSettings.Uploaded = DateTime.Now; if (workshopSettings.Created == default(DateTime) || workshopSettings.Created == _sqlDefaultDateTime) { workshopSettings.Created = DateTime.Now; } context.Set <WorkshopSettings>().Add(workshopSettings); context.SaveChanges(); } }
private void UploadDocument <T>(T document) where T : Document { using (var context = new ConnectContext()) { document.UserId = GetUserId(); context.Set <T>().Add(document); context.SaveChanges(); var serializedData = new SerializedData { DocumentType = typeof(T).FullName, DocumentId = document.Id, Data = document.SerializedData }; context.Set <SerializedData>().Add(serializedData); context.SaveChanges(); } }
public CustomerContact[] FindExistingCustomerContact(string customerName) { if (string.IsNullOrEmpty(customerName)) { return(null); } customerName = customerName.Trim().ToLower().Replace(" ", "").Replace(".", "").Replace("-", ""); if (customerName.Length < 3) { return(null); } using (var context = new ConnectContext()) { var a = context.CustomerContacts.Where(c => c.Name != null && c.Name.Trim().ToLower().Replace(" ", "").Replace(".", "").Replace("-", "").StartsWith(customerName)).ToArray(); return(a); } }
public object Find(string registrationNumber, DocumentType documentType) { if (string.IsNullOrEmpty(registrationNumber)) { throw new FaultException("Registration number was not supplied"); } registrationNumber = registrationNumber.ToUpper(); var companyKey = FetchClaimValue(ConnectConstants.ConnectCompanyKeyClaim); using (var context = new ConnectContext()) { if ((documentType & DocumentType.Tachograph) == DocumentType.Tachograph) { var tachographDocument = FindDocument <TachographDocument>(context, registrationNumber, companyKey); if (tachographDocument != null) { return(tachographDocument); } } if ((documentType & DocumentType.Undownloadability) == DocumentType.Undownloadability) { var undownloadabilityDocument = FindDocument <UndownloadabilityDocument>(context, registrationNumber, companyKey); if (undownloadabilityDocument != null) { return(undownloadabilityDocument); } } if ((documentType & DocumentType.LetterForDecommissioning) == DocumentType.LetterForDecommissioning) { return(FindDocument <LetterForDecommissioningDocument>(context, registrationNumber, companyKey)); } return(null); } }
private static Document FindDocument <T>(ConnectContext context, string registrationNumber, string companyKey) where T : Document { return(FindDocuments <T>(context, registrationNumber, companyKey).FirstOrDefault()); }