コード例 #1
0
        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();
                }
            }
        }
コード例 #2
0
        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();
                }
            }
        }
コード例 #3
0
        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();
            }
        }
コード例 #4
0
        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();
            }
        }
コード例 #5
0
        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();
            }
        }
コード例 #6
0
 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));
 }
コード例 #7
0
 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));
 }
コード例 #8
0
        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();
            }
        }