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 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();
                    }
                }
            }
        }