Exemplo n.º 1
0
        private static void UserData()
        {
            UCSContext context = new UCSContext();

            string urlRequestToken = "https://usosapps.prz.edu.pl/services/users/user";

            string oauth_token        = HttpContext.Current.Session["oauth_token"].ToString();
            string oauth_token_secret = HttpContext.Current.Session["oauth_token_secret"].ToString();

            long     timestamp        = (long)(DateTime.Now - new DateTime(1970, 1, 1)).TotalSeconds;
            string   nonce            = Guid.NewGuid().ToString("N");
            string   parameters       = $"fields={WebUtility.UrlEncode("email|first_name|last_name")}&oauth_consumer_key=EmYdreSZDVA2AZGQTkDY&oauth_nonce={nonce}&oauth_signature_method=HMAC-SHA1&oauth_timestamp={timestamp}&oauth_token={oauth_token}&oauth_version=1.0";
            string   signatureContent = $"GET&{WebUtility.UrlEncode(urlRequestToken)}&{WebUtility.UrlEncode(parameters)}";
            HMACSHA1 sha1             = new HMACSHA1()
            {
                Key = Encoding.ASCII.GetBytes(WebUtility.UrlEncode("fNterDE3qrTHsxGrgz86yvHVUyrFngamMQR5wLTB") + "&" + WebUtility.HtmlEncode(oauth_token_secret))
            };
            string signature  = Convert.ToBase64String(sha1.ComputeHash(Encoding.ASCII.GetBytes(signatureContent)));
            string requestUrl = $"https://usosapps.prz.edu.pl/services/users/user?{parameters}&oauth_signature={WebUtility.UrlEncode(signature)}";

            using (HttpClient httpClient = new HttpClient())
            {
                HttpResponseMessage response = httpClient.GetAsync(requestUrl).Result;

                string responseData = response.Content.ReadAsStringAsync().Result;

                StudentResponseDTO studentData = JsonConvert.DeserializeObject <StudentResponseDTO>(responseData);

                Student studentDb = context.Students.SingleOrDefault(s => s.UserName == studentData.Email);
                if (studentDb == null)
                {
                    Student newStudentDb = new Student()
                    {
                        Guid         = Guid.NewGuid().ToString("N"),
                        FirstName    = studentData.FirstName,
                        LastName     = studentData.LastName,
                        UserName     = studentData.Email,
                        IsActive     = true,
                        AddedAt      = DateTime.Now,
                        LastActivity = DateTime.Now
                    };
                    context.Students.Add(newStudentDb);
                    context.SaveChanges();

                    HttpContext.Current.Session["ucs_student_guid"] = newStudentDb.Guid;
                }
                else
                {
                    studentDb.LastActivity = DateTime.Now;
                    context.SaveChanges();
                    HttpContext.Current.Session["ucs_student_guid"] = studentDb.Guid;
                }
            }
        }
Exemplo n.º 2
0
        public List <Chat> GetAllThreadById(int id, string userId = null, int studentId = 0)
        {
            Chat        chatDb  = _context.Chats.SingleOrDefault(c => c.Id == id);
            List <Chat> chatsDb = _context.Chats.Where(c => c.ParentChatId == chatDb.ParentChatId).OrderBy(c => c.AddedAt).ToList();

            if (!string.IsNullOrEmpty(userId))
            {
                chatsDb.Where(c => c.ReceiverUserId == userId).All(c => c.IsRead = true);
                _context.SaveChanges();
            }
            else if (studentId != 0)
            {
                chatsDb.Where(c => c.ReceiverStudentId == studentId).All(c => c.IsRead = true);
                _context.SaveChanges();
            }
            return(chatsDb);
        }
Exemplo n.º 3
0
        public HttpResponseMessage Post(MessageDTO message)
        {
            HttpResponseMessage response = null;

            if (message == null ||
                message.CategoryId < 1 ||
                !context.Categories.Any(c => c.Id == message.CategoryId) ||
                string.IsNullOrEmpty(message.Content) ||
                string.IsNullOrEmpty(message.Title) ||
                string.IsNullOrEmpty(message.UserId))
            {
                response = new HttpResponseMessage(HttpStatusCode.BadRequest);
                return(response);
            }

            User userDb = context.Users.SingleOrDefault(u => u.Id == message.UserId);

            if (userDb == null)
            {
                response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
                return(response);
            }

            List <Student> studentsDb = context.Students
                                        .Where(s => s.Categories.Any(c => c.CategoryId == message.CategoryId))
                                        .ToList();

            Message messageDb = new Message()
            {
                Title   = message.Title,
                Content = message.Content,
                Emails  = studentsDb.Select(s => s.UserName).ToList(),
                AddedAt = DateTime.Now,
                UserId  = message.UserId,
                SendAt  = DateTime.Now
            };

            userDb.Messages.Add(messageDb);
            context.SaveChanges();

            foreach (string email in studentsDb.Select(s => s.UserName))
            {
                MailHelpers.Send(email, messageDb.Title, messageDb.Content);
            }

            response         = new HttpResponseMessage(HttpStatusCode.OK);
            response.Content = new StringContent(studentsDb.Count().ToString(), Encoding.UTF8);

            return(response);
        }
Exemplo n.º 4
0
 public void Add(Category categoryDb)
 {
     _context.Categories.Add(categoryDb);
     _context.SaveChanges();
 }
Exemplo n.º 5
0
 public void Add(Student studentDb)
 {
     _context.Students.Add(studentDb);
     _context.SaveChanges();
 }
Exemplo n.º 6
0
 public void Edit(User userDb)
 {
     userDb.LastModifiedAt = DateTime.Now;
     _context.SaveChanges();
 }