Ejemplo n.º 1
0
        internal static string CreateNew(ossContext context, string ip, string host, string osUser,
                                         int felhasznaloKod, string felhasznalo, string azonosito, bool logol)
        {
            string result;

            lock (LockMe)
            {
                Purge(context);

                var entity = new Models.Session
                {
                    Sessionid = Guid.NewGuid().ToString(),

                    Felhasznalokod = felhasznaloKod,
                    Felhasznalo    = felhasznalo,
                    Azonosito      = azonosito,
                    Logol          = logol,

                    Ip     = ip,
                    Host   = host,
                    Osuser = osUser,

                    Ervenyes   = DateTime.Now.AddHours(8), //hűha
                    Letrehozva = DateTime.Now,
                };

                result = SessionDal.Add(context, entity);
                entity = SessionDal.Get(context, result);

                context.CurrentSession = entity;
            }

            return(result);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Create a new session
        /// Sessions are idempotent, so relevant parameters must be set in this function if desired
        /// </summary>
        /// <param name="accountId">Required parameter: Account ID</param>
        /// <param name="body">Optional parameter: Session parameters</param>
        /// <return>Returns the ApiResponse<Models.Session> response from the API call</return>
        public ApiResponse <Models.Session> CreateSession(string accountId, Models.Session body = null)
        {
            Task <ApiResponse <Models.Session> > t = CreateSessionAsync(accountId, body);

            ApiHelper.RunTaskSynchronously(t);
            return(t.Result);
        }
Ejemplo n.º 3
0
        //----< GET api/File?blockSize=2048 - get a block of bytes >-------

        public HttpResponseMessage Get(int blockSize)
        {
            // get FileStream and read block

            Models.Session    session   = new Models.Session();
            CookieHeaderValue cookie    = Request.Headers.GetCookies("session-id").FirstOrDefault();
            string            sessionId = cookie["session-id"].Value;
            FileStream        down      = session.getStream(sessionId);

            byte[] Block     = new byte[blockSize];
            int    bytesRead = down.Read(Block, 0, blockSize);

            if (bytesRead < blockSize) // compress block
            {
                byte[] returnBlock = new byte[bytesRead];
                for (int i = 0; i < bytesRead; ++i)
                {
                    returnBlock[i] = Block[i];
                }
                Block = returnBlock;
            }
            // make response message containing block and cookie

            HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);

            message.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            message.Content = new ByteArrayContent(Block);
            return(message);
        }
Ejemplo n.º 4
0
        // POST api/file
        public HttpResponseMessage Post(int blockSize)
        {
            Task <byte[]> task = Request.Content.ReadAsByteArrayAsync();

            byte[]              Block    = task.Result;
            CookieHeaderValue   cookie   = Request.Headers.GetCookies("session-id").FirstOrDefault();
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.NoContent);

            try
            {
                Models.Session session   = new Models.Session();
                string         sessionId = cookie["session-id"].Value;

                FileStream up = session.getStream(sessionId);
                up.Write(Block, 0, Block.Length);

                response.StatusCode = (HttpStatusCode)200;
            }
            catch
            {
                response.StatusCode = (HttpStatusCode)400;
            }
            finally
            {
                response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            }

            return(response);
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> Put([FromRoute] int id, [FromBody] Models.Session input)
        {
            var session = await _db.Sessions.FindAsync(id);

            if (session == null)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            session.ID           = input.ID;
            session.Title        = input.Title;
            session.Abstract     = input.Abstract;
            session.StartTime    = input.StartTime;
            session.EndTime      = input.EndTime;
            session.TrackId      = input.TrackId;
            session.ConferenceID = input.ConferenceID;

            await _db.SaveChangesAsync();

            var result = session.MapSessionResponse();

            return(Ok(result));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> PutSession(int id, int id2, int id3, Models.Session session)
        {
            if (id != session.SeanceId)
            {
                return(BadRequest());
            }

            _context.Entry(session).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SessionExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
            public void Update()
            {
                var session = new Models.Session
                {
                    Name        = "[VENDOR] Introduction to Amazon AWS",
                    Description = "Talk description",
                    TimeslotId  = "78056",
                    LocationId  = "25194",
                    //LevelId =
                    IsSponsorSession = true,
                    SessionTypeId    = "14915",
                    SpeakerIds       = new List <string> {
                        "101508"
                    },
                    TrackIds = new List <string> {
                        "10554"
                    },
                    TagIds = new List <string> {
                        "19869"
                    },
                    Id = "121473"
                };

                Console.WriteLine(EventsXdService.Sessions.Update(5577, session));
            }
        public JsonResult Init2(int clientId, string from, string city, string state, string country, string zip)
        {
            bool isRegisteredDevice = IsRegisteredDevice(clientId, from);

            Models.Session session = new Models.Session()
            {
                Caller = new Models.Caller()
                {
                    From    = from,
                    City    = city,
                    State   = state,
                    Country = country,
                    Zip     = zip
                }
            };

            if (!isRegisteredDevice)
            {
                session = FindSessionByClientUnregisteredNumber(clientId, from);
                if (session == null)
                {
                    session = GetSession(clientId, from); if (session == null)
                    {
                        throw new Exception("Session object is null.");
                    }
                    session.Passcode           = int.Parse(GetRandomString(RandomDatatype.Numeric));
                    session.UnregisteredNumber = from;
                    UpdateDBSession(session);
                }
            }
            return(new JsonResult()
            {
                Data = session, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
        public static ISession GetSession(HttpRequestMessage request)
        {
            // TODO: This is just a sample. Insert whatever session management logic you need.
            var session = new Models.Session(request);

            return(session);
        }
Ejemplo n.º 10
0
        public static async Task SendPostMessageAsync(Models.Session session, string reqUrl)
        {
            var tokenProvider    = TokenProvider.CreateSharedAccessSignatureTokenProvider(KeyName, AccessKey);
            var messagingFactory = MessagingFactory.Create(BaseAddress, tokenProvider);
            var sender           = messagingFactory.CreateMessageSender(QueueName);

            var messageModel = new MessageModel()
            {
                TitleMessage     = "New Session record {" + session.SessionId + "} added at " + DateTime.UtcNow,
                CustomerGuid     = session.CustomerId,
                LastModifiedDate = session.LastModifiedDate,
                URL           = reqUrl + "/" + session.SessionId,
                IsNewCustomer = false,
                TouchpointId  = session.LastModifiedTouchpointId
            };

            var msg = new BrokeredMessage(new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(messageModel))))
            {
                ContentType = "application/json",
                MessageId   = session.CustomerId + " " + DateTime.UtcNow
            };

            //msg.ForcePersistence = true; Required when we save message to cosmos
            await sender.SendAsync(msg);
        }
Ejemplo n.º 11
0
        public static string Add(ossContext context, Models.Session entity)
        {
            context.Session.Add(entity);
            context.SaveChanges();

            return(entity.Sessionid);
        }
Ejemplo n.º 12
0
        //----< GET api/File?fileName=foobar.txt&open=true >---------------
        //----< attempt to open or close FileStream >----------------------

        public HttpResponseMessage Get(string fileName, string open)
        {
            string sessionId;
            var    response = new HttpResponseMessage();

            Models.Session session = new Models.Session();

            CookieHeaderValue cookie = Request.Headers.GetCookies("session-id").FirstOrDefault();

            if (cookie == null)
            {
                sessionId      = session.incrSessionId();
                cookie         = new CookieHeaderValue("session-id", sessionId);
                cookie.Expires = DateTimeOffset.Now.AddDays(1);
                cookie.Domain  = Request.RequestUri.Host;
                cookie.Path    = "/";
            }
            else
            {
                sessionId = cookie["session-id"].Value;
            }
            try
            {
                FileStream fs;
                string     path = System.Web.HttpContext.Current.Server.MapPath("~\\App_Data\\");
                if (open == "download") // attempt to open requested fileName
                {
                    path = path + "DownLoad";
                    string currentFileSpec = path + "\\" + fileName;
                    fs = new FileStream(currentFileSpec, FileMode.Open);
                    session.saveStream(fs, sessionId);
                }
                else if (open == "upload")
                {
                    path = path + "UpLoad";
                    string currentFileSpec = path + "\\" + fileName;
                    fs = new FileStream(currentFileSpec, FileMode.OpenOrCreate);
                    session.saveStream(fs, sessionId);
                }
                else // close FileStream
                {
                    fs = session.getStream(sessionId);
                    session.removeStream(sessionId);
                    fs.Close();
                }
                response.StatusCode = (HttpStatusCode)200;
            }
            catch
            {
                response.StatusCode = (HttpStatusCode)400;
            }
            finally // return cookie to save current sessionId
            {
                response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            }
            return(response);
        }
Ejemplo n.º 13
0
        //----< GET api/File?fileName=foobar.txt&open=true >---------------
        //----< attempt to open or close FileStream >----------------------
        public HttpResponseMessage Get(string fileName, string open)
        {
            string sessionId;
              var response = new HttpResponseMessage();
              Models.Session session = new Models.Session();

              CookieHeaderValue cookie = Request.Headers.GetCookies("session-id").FirstOrDefault();
              if (cookie == null)
              {
            sessionId = session.incrSessionId();
            cookie = new CookieHeaderValue("session-id", sessionId);
            cookie.Expires = DateTimeOffset.Now.AddDays(1);
            cookie.Domain = Request.RequestUri.Host;
            cookie.Path = "/";
              }
              else
              {
            sessionId = cookie["session-id"].Value;
              }
              try
              {
            FileStream fs;
            string path = System.Web.HttpContext.Current.Server.MapPath("~\\App_Data\\");
            if (open == "download")  // attempt to open requested fileName
            {
              path = path + "DownLoad";
              string currentFileSpec = path + "\\" + fileName;
              fs = new FileStream(currentFileSpec, FileMode.Open);
              session.saveStream(fs, sessionId);
            }
            else if(open == "upload")
            {
              path = path + "UpLoad";
              string currentFileSpec = path + "\\" + fileName;
              fs = new FileStream(currentFileSpec, FileMode.OpenOrCreate);
              session.saveStream(fs, sessionId);
            }
            else  // close FileStream
            {
              fs = session.getStream(sessionId);
              session.removeStream(sessionId);
              fs.Close();
            }
            response.StatusCode = (HttpStatusCode)200;
              }
              catch
              {
            response.StatusCode = (HttpStatusCode)400;
              }
              finally  // return cookie to save current sessionId
              {
            response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
              }
              return response;
        }
Ejemplo n.º 14
0
        private static string GetBodyAsHtml(Models.Session session)
        {
            string body = innerHtml.Replace(sessionToken, session.Passcode == null ? session.Passcode.ToString() : null);

            body = body.Replace(FromToken, session.Caller.From);
            body = body.Replace(CallerCityToken, session.Caller.City);
            body = body.Replace(CallerStateToken, session.Caller.State);
            body = body.Replace(CallerCountryToken, session.Caller.Country);
            body = body.Replace(CallerZipToken, session.Caller.Zip);
            return(body);
        }
Ejemplo n.º 15
0
 public Session(Models.Session session)
 {
     Id        = session.Id;
     AppId     = session.AppId;
     Owner     = session.Owner;
     ProxyUser = session.ProxyUser;
     Kind      = (SessionKind)session.Kind;
     Log       = session.Log;
     State     = (SessionState)session.State;
     AppInfo   = session.AppInfo;
 }
Ejemplo n.º 16
0
        /* TODO: parse mail fields
         *
         */

        public static void SendPasscode(Models.Session session)
        {
            if (!string.IsNullOrEmpty(session.User.EmailAddress))
            {
                string      body   = GetBodyAsHtml(session);// innerHtml.Replace(sessionToken, passcode);
                string      sender = "*****@*****.**";
                string      pwd    = "helloWorld55!";
                MailMessage m      = new MailMessage();
                SmtpClient  sc     = new SmtpClient();
                m.From = new MailAddress(sender);        //"*****@*****.**");// sender/*txtFrom.Text*/);
                m.To.Add(session.User.EmailAddress /*txtTo.Text*/);
                m.Subject    = "Your one-time passcode"; // "This is a test";
                m.Body       = body;                     // "This is a sample message using SMTP authentication";
                m.IsBodyHtml = true;
                sc.Host      = "mail.geek-ish.com";      // txtMailServer.Text;
                string str1 = "gmail.com";
                string str2 = sender /*txtFrom.Text*/.ToLower();
                if (str2.Contains(str1))
                {
                    try
                    {
                        sc.Port        = 587;
                        sc.Credentials = new System.Net.NetworkCredential(sender /*txtFrom.Text*/, pwd /*txtPass.Text*/);
                        sc.EnableSsl   = true;
                        sc.Send(m);
                        //Response.Write("Email sent successfully!");
                    }
                    catch (Exception ex)
                    {
                        string message = /*Response.Write("<BR><BR>* */ "Please double check the From Address and Password to confirm that both of them are correct.";                                                                                                                                                                             /* <br>");*/
                        message += /*Response.Write("<BR><BR>*/ "If you are using gmail smtp to send email for the first time, please refer to this KB to setup your gmail account: http://www.smarterasp.net/support/kb/a1546/send-email-from-gmail-with-smtp-authentication-but-got-5_5_1-authentication-required-error.aspx?KBSearchID=137388"; /*);*/
                        throw new Exception(message, ex);
                    }
                }
                else
                {
                    try
                    {
                        sc.Port        = 25;
                        sc.Credentials = new System.Net.NetworkCredential(sender /*txtFrom.Text*/, pwd /*txtPass.Text*/);
                        sc.EnableSsl   = false;
                        sc.Send(m);
                        //Response.Write(string.Format("Passcode email sent successfully to: {0}\n\n", recipient));
                    }
                    catch (Exception ex)
                    {
                        Console /*Response*/.Write("<BR><BR>* Please double check the From Address and Password to confirm that both of them are correct. <br>");
                        //Response.End();
                        throw ex;
                    }
                }
            }
        }
        public void TryLoad_should_return_true_when_session_is_loaded()
        {
            // Given
            IDictionary<string, object> items;
            IDictionary<string, object> sessionItems = new Dictionary<string, object> { { "test", "value" } };
            var session = new Models.Session { Id = Guid.NewGuid(), Items = sessionItems };
            A.CallTo(() => documentSession.Load<Models.Session>(session.Id.ToString())).Returns(session);

            // When
            var result = sessionStore.TryLoadSession(BuildRequestWithSession(session.Id), out items);

            // Then
            result.ShouldBeTrue();
            A.CallTo(() => documentSession.Load<Models.Session>(session.Id.ToString())).MustHaveHappened();
        }
Ejemplo n.º 18
0
        public async Task <IActionResult> OnGetAsync(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Session = await _context.Session.FirstOrDefaultAsync(m => m.SessionId == id);

            if (Session == null)
            {
                return(NotFound());
            }
            return(Page());
        }
Ejemplo n.º 19
0
        public static Models.Session Session(string user)
        {
            var id = Guid.NewGuid().ToString().Replace("-", "");

            var session = new Models.Session
            {
                Id      = id,
                User    = user,
                Expires = DateTimeOffset.UtcNow.AddHours(8)
            };

            _sessions.Add(session.Id, session.User, session.Expires);
            _attempts.Remove(session.User);
            return(session);
        }
Ejemplo n.º 20
0
        //----< GET api/File?fileName=foobar.txt&open=true >---------------
        //----< attempt to open or close FileStream >----------------------

        public HttpResponseMessage Get(string fileName, string open)
        {
            string sessionId;
            var response = new HttpResponseMessage();
            Models.Session session = new Models.Session();
            CookieHeaderValue cookie = Request.Headers.GetCookies("session-id").FirstOrDefault();
            if (cookie == null) {
                sessionId = session.incrSessionId();
                cookie = new CookieHeaderValue("session-id", sessionId);
                cookie.Expires = DateTimeOffset.Now.AddDays(1);
                cookie.Domain = Request.RequestUri.Host;
                cookie.Path = "/";
            } else {
                sessionId = cookie["session-id"].Value;
            }
            try {
                FileStream fs;
                string path = System.Web.HttpContext.Current.Server.MapPath("~\\ZipFiles");
                if (open == "download") {
                    // attempt to open requested fileName
                    string currentFileSpec = path + "\\" + fileName;
                    fs = new FileStream(currentFileSpec, FileMode.Open);
                    session.saveStream(fs, sessionId);
                } else if (open == "upload") {
                    string path1 = System.Web.HttpContext.Current.Server.MapPath("~\\CollagePages\\UploadedFiles\\");
                    string a = Path.GetFileName(fileName);
                    string currentFileSpec = path1 + "\\" + a;
                    fs = new FileStream(currentFileSpec, FileMode.OpenOrCreate);
                    session.saveStream(fs, sessionId);
                } else {
                    // close FileStream 
                    fs = session.getStream(sessionId);
                    session.removeStream(sessionId);
                    fs.Close();
                    string storyXML = HttpContext.Current.Server.MapPath("~\\CollagePages\\UploadedFiles\\") + "story.xml";
                    if (System.IO.File.Exists(storyXML))
                        addStoryBlock(storyXML);
                }
                response.StatusCode = (HttpStatusCode)200;
            } catch {
                response.StatusCode = (HttpStatusCode)400;
            }
            finally {
                // return cookie to save current sessionId 
                response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            }
            return response;
        }
Ejemplo n.º 21
0
        // POST api/file
        public HttpResponseMessage Post(int blockSize)
        {
            Task <byte[]> task = Request.Content.ReadAsByteArrayAsync();

            byte[]            Block     = task.Result;
            Models.Session    session   = new Models.Session();
            CookieHeaderValue cookie    = Request.Headers.GetCookies("session-id").FirstOrDefault();
            string            sessionId = cookie["session-id"].Value;
            FileStream        up        = session.getStream(sessionId);

            up.Write(Block, 0, Block.Count());
            HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);

            message.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            return(message);
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Creates a FlixNet user from a service user
        /// </summary>
        /// <param name="wcfUser"></param>
        /// <returns>Mdels.User</returns>
        private Models.User ConvertToModelUser(LogInSessionService.User wcfUser)
        {
            Models.Session session = new Models.Session
            {
                Id         = wcfUser.Session.Id,
                Session_id = wcfUser.Session.Session_id
            };

            Models.User user = new Models.User
            {
                Id       = wcfUser.Id,
                UserName = wcfUser.UserName,
                Session  = session
            };
            return(user);
        }
Ejemplo n.º 23
0
        public async Task <SignalRMessage> ExecuteAsync(StartSessionCommand command, SignalRMessage previousResult)
        {
            var session = new Models.Session()
            {
                Id = Guid.NewGuid()
            };

            await _sessionRepository.Add(session);

            return(new SignalRMessage
            {
                Arguments = new object[] { session },
                GroupName = null,
                Target = "startSessionCommandNotification",
            });
        }
Ejemplo n.º 24
0
        public async Task <IActionResult> OnPostAsync(Guid?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Session = await _context.Session.FindAsync(id);

            if (Session != null)
            {
                _context.Session.Remove(Session);
                await _context.SaveChangesAsync();
            }

            return(RedirectToPage("./Index"));
        }
        public void Setup()
        {
            _session = Substitute.For <Models.Session>();

            _request = new HttpRequestMessage()
            {
                Content    = new StringContent(string.Empty),
                RequestUri =
                    new Uri($"http://localhost:7071/api/Customers/7E467BDB-213F-407A-B86A-1954053D3C24/" +
                            $"Interactions/aa57e39e-4469-4c79-a9e9-9cb4ef410382/" +
                            $"Sessions/d5369b9a-6959-4bd3-92fc-1583e72b7e51")
            };

            _log                              = Substitute.For <ILogger>();
            _resourceHelper                   = Substitute.For <IResourceHelper>();
            _httpRequestMessageHelper         = Substitute.For <IHttpRequestMessageHelper>();
            _getSessionByIdHttpTriggerService = Substitute.For <IGetSessionByIdHttpTriggerService>();
            _httpRequestMessageHelper.GetTouchpointId(_request).Returns("0000000001");
        }
Ejemplo n.º 26
0
        public void TryLoad_should_return_true_when_session_is_loaded()
        {
            // Given
            IDictionary <string, object> items;
            IDictionary <string, object> sessionItems = new Dictionary <string, object> {
                { "test", "value" }
            };
            var session = new Models.Session {
                Id = Guid.NewGuid(), Items = sessionItems
            };

            A.CallTo(() => documentSession.Load <Models.Session>(session.Id.ToString())).Returns(session);

            // When
            var result = sessionStore.TryLoadSession(BuildRequestWithSession(session.Id), out items);

            // Then
            result.ShouldBeTrue();
            A.CallTo(() => documentSession.Load <Models.Session>(session.Id.ToString())).MustHaveHappened();
        }
Ejemplo n.º 27
0
        public void TryLoad_should_set_items_collection_when_loaded()
        {
            // Given
            IDictionary <string, object> items;
            IDictionary <string, object> sessionItems = new Dictionary <string, object> {
                { "test", "value" }
            };
            var session = new Models.Session {
                Id = Guid.NewGuid(), Items = sessionItems
            };

            A.CallTo(() => documentSession.Load <Models.Session>(session.Id.ToString())).Returns(session);

            // When
            sessionStore.TryLoadSession(BuildRequestWithSession(session.Id), out items);

            // Then
            items.Count.ShouldEqual(1);
            items["test"].ShouldEqual("value");
            A.CallTo(() => documentSession.Load <Models.Session>(session.Id.ToString())).MustHaveHappened();
        }
Ejemplo n.º 28
0
        public async Task <ActionResult <Models.Session> > PostSession(Models.Session session)
        {
            _context.Session.Add(session);
            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateException)
            {
                if (SessionExists(session.SeanceId))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(CreatedAtAction("GetSession", new { id = session.SeanceId }, session));
        }
 public ActionResult <Models.User> Start(Models.User user)
 {
     Models.User userGetter = userRepo.GetByName(user.Name);
     if (userGetter == null)
     {
         return(NotFound());
     }
     if (userGetter.Password != user.Password)
     {
         return(Forbid());
     }
     Models.Session activeSession = sessionRepo.GetByUserId(userGetter.Id.ToString());
     if (activeSession == null)
     {
         activeSession = sessionRepo.Add(new Models.Session {
             UserId = userGetter.Id
         });
     }
     userGetter.SessionId = activeSession.Id;
     userGetter.Password  = "";
     return(userGetter);
 }
Ejemplo n.º 30
0
        public async Task <IActionResult> Post([FromBody] Models.Session input)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var session = new Session
            {
                Title        = input.Title,
                ConferenceID = input.ConferenceID,
                StartTime    = input.StartTime,
                EndTime      = input.EndTime,
                Abstract     = input.Abstract,
                TrackId      = input.TrackId
            };

            _db.Sessions.Add(session);
            await _db.SaveChangesAsync();

            var result = session.MapSessionResponse();

            return(CreatedAtAction(nameof(Get), new { id = result.ID }, result));
        }
Ejemplo n.º 31
0
        //----< GET api/File?blockSize=2048 - get a block of bytes >-------

        public HttpResponseMessage Get(int blockSize)                           // What is session-ID and block size?
        {
            // get FileStream and read block

            Models.Session session = new Models.Session();
            CookieHeaderValue cookie = Request.Headers.GetCookies("session-id").FirstOrDefault();            
            string sessionId = cookie["session-id"].Value;
            FileStream down = session.getStream(sessionId);
            byte[] Block = new byte[blockSize];
            int bytesRead = down.Read(Block, 0, blockSize);
            if (bytesRead < blockSize)  // compress block
            {
                byte[] returnBlock = new byte[bytesRead];
                for (int i = 0; i < bytesRead; ++i)
                    returnBlock[i] = Block[i];
                Block = returnBlock;
            }
            // make response message containing block and cookie

            HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);
            message.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            message.Content = new ByteArrayContent(Block);
            return message;
        }
Ejemplo n.º 32
0
        // POST api/file
        public HttpResponseMessage Post(int blockSize)
        {
            Task<byte[]> task = Request.Content.ReadAsByteArrayAsync();
            byte[] Block = task.Result;
            CookieHeaderValue cookie = Request.Headers.GetCookies("session-id").FirstOrDefault();
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.NoContent);

            try
            {
                Models.Session session = new Models.Session();
                string sessionId = cookie["session-id"].Value;

                FileStream up = session.getStream(sessionId);
                up.Write(Block, 0, Block.Length);

                response.StatusCode = (HttpStatusCode)200;
            }
            catch
            {
                response.StatusCode = (HttpStatusCode)400;
            }
            finally
            {
                response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
            }

            return response;
        }
Ejemplo n.º 33
0
        public ActionResult Save(SessionFormViewModel sess)
        {
            if (!ModelState.IsValid)
            {
                sess.Courses  = _context.Courses;
                sess.Trainers = _context.People.Where(p => p.Flags.Any(f => f.ID == "TRN"))
                                .Select(p => new Trainer {
                    ID = p.ID, FName = p.Forename, SName = p.Surname
                })
                                .ToList();
                sess.Locations = _context.Locations.Where(l => l.TLoc);
                return(View("SessionForm", sess));
            }

            Person userperson = _context.People.SingleOrDefault(p => p.ID == 0);

            if (sess.ID == 0)
            {
                Session newSession = new Models.Session();
                newSession.CourseID   = sess.CourseID;
                newSession.TrainerID  = sess.TrainerID;
                newSession.LocationID = sess.LocationID;
                if (sess.CourseDate != null)
                {
                    newSession.Strt = ((DateTime)(sess.CourseDate)).Date.Add((TimeSpan)(sess.StartTime));
                    if (sess.EndTime != null)
                    {
                        newSession.Endt = ((DateTime)(sess.CourseDate)).Date.Add((TimeSpan)(sess.EndTime));
                    }
                    else
                    {
                        if (sess.CourseID != null && sess.CourseID != 0)
                        {
                            var course = _context.Courses.Single(c => c.ID == sess.CourseID);
                            if (course.Length != null)
                            {
                                double length = (double)(course.Length);
                                newSession.Endt = ((DateTime)(newSession.Strt)).AddMinutes(length);
                            }
                        }
                    }
                }
                if (sess.MaxP != 0)
                {
                    newSession.MaxP = sess.MaxP;
                }
                else
                {
                    if (sess.LocationID != null && sess.LocationID != 0)
                    {
                        var location = _context.Locations.Single(l => l.ID == sess.LocationID);
                        newSession.MaxP = (short)location.MaxP;
                    }
                }
                newSession.Notes = sess.Notes;

                newSession.Created  = DateTime.Now;
                newSession.Creator  = userperson;
                newSession.Modified = DateTime.Now;
                newSession.Modifier = userperson;
                _context.Sessions.Add(newSession);
            }
            else
            {
                var sessionInDb = _context.Sessions.Single(s => s.ID == sess.ID);

                sessionInDb.CourseID   = sess.CourseID;
                sessionInDb.TrainerID  = sess.TrainerID;
                sessionInDb.LocationID = sess.LocationID;
                if (sess.CourseDate == null)
                {
                    sessionInDb.Strt = null;
                    sessionInDb.Endt = null;
                }
                else
                {
                    sessionInDb.Strt = ((DateTime)(sess.CourseDate)).Date.Add((TimeSpan)(sess.StartTime));
                    if (sess.EndTime != null)
                    {
                        sessionInDb.Endt = ((DateTime)(sess.CourseDate)).Date.Add((TimeSpan)(sess.EndTime));
                    }
                    else
                    {
                        if (sess.CourseID != null && sess.CourseID != 0)
                        {
                            var course = _context.Courses.Single(c => c.ID == sess.CourseID);
                            if (course.Length != null)
                            {
                                double length = (double)(course.Length);
                                sessionInDb.Endt = ((DateTime)(sessionInDb.Strt)).AddMinutes(length);
                            }
                        }
                    }
                }
                sessionInDb.MaxP  = sess.MaxP;
                sessionInDb.Notes = sess.Notes;

                sessionInDb.Modified = DateTime.Now;
                sessionInDb.Modifier = userperson;
            }

            _context.SaveChanges();

            return(RedirectToAction("Index", "Session"));
        }
        // POST api/file
        public void Post(HttpRequestMessage request, string FileName, string description, string siteName,string AddOrNot)
        {
            Task<byte[]> taskb = request.Content.ReadAsByteArrayAsync();
            byte[] Block = taskb.Result;
            Models.Session session = new Models.Session();
            string sessionId = session.getSessionId();
            FileStream down = session.getStream(sessionId);//save it into the session,get it from the 
            int blockSize = 512;
            if (Block.Length == 0 || blockSize <= 0)
                return;
            down.Write(Block, 0, Block.Length);
            if(Block.Length<512&&AddOrNot=="true")
            {
                Models.Site NewData = new Models.Site();
                NewData.Description = description;
                NewData.Image = FileName;
                NewData.SiteName = siteName;
                db.Sites.Add(NewData);
                db.SaveChanges();         
            }

        }
Ejemplo n.º 35
0
 // POST api/file
 public HttpResponseMessage Post(int blockSize)
 {
     Task<byte[]> task = Request.Content.ReadAsByteArrayAsync();
       byte[] Block = task.Result;
       Models.Session session = new Models.Session();
       CookieHeaderValue cookie = Request.Headers.GetCookies("session-id").FirstOrDefault();
       string sessionId = cookie["session-id"].Value;
       FileStream up = session.getStream(sessionId);
       up.Write(Block, 0, Block.Count());
       HttpResponseMessage message = new HttpResponseMessage(HttpStatusCode.OK);
       message.Headers.AddCookies(new CookieHeaderValue[] { cookie });
       return message;
 }
Ejemplo n.º 36
0
        /// <summary>
        /// Create a new session.
        /// Sessions are idempotent, so relevant parameters must be set in this function if desired.
        /// </summary>
        /// <param name="accountId">Required parameter: Account ID.</param>
        /// <param name="body">Optional parameter: Session parameters.</param>
        /// <param name="cancellationToken"> cancellationToken. </param>
        /// <returns>Returns the ApiResponse of Models.Session response from the API call.</returns>
        public async Task <ApiResponse <Models.Session> > CreateSessionAsync(
            string accountId,
            Models.Session body = null,
            CancellationToken cancellationToken = default)
        {
            // the base uri for api requests.
            string baseUri = this.Config.GetBaseUri(Server.WebRtcDefault);

            // prepare query string for API call.
            StringBuilder queryBuilder = new StringBuilder(baseUri);

            queryBuilder.Append("/accounts/{accountId}/sessions");

            // process optional template parameters.
            ApiHelper.AppendUrlWithTemplateParameters(queryBuilder, new Dictionary <string, object>()
            {
                { "accountId", accountId },
            });

            // append request with appropriate headers and parameters
            var headers = new Dictionary <string, string>()
            {
                { "user-agent", this.UserAgent },
                { "accept", "application/json" },
                { "content-type", "application/json; charset=utf-8" },
            };

            // append body params.
            var bodyText = ApiHelper.JsonSerialize(body);

            // prepare the API call request to fetch the response.
            HttpRequest httpRequest = this.GetClientInstance().PostBody(queryBuilder.ToString(), headers, bodyText);

            if (this.HttpCallBack != null)
            {
                this.HttpCallBack.OnBeforeHttpRequestEventHandler(this.GetClientInstance(), httpRequest);
            }

            httpRequest = await this.AuthManagers["webRtc"].ApplyAsync(httpRequest).ConfigureAwait(false);

            // invoke request and get response.
            HttpStringResponse response = await this.GetClientInstance().ExecuteAsStringAsync(httpRequest, cancellationToken).ConfigureAwait(false);

            HttpContext context = new HttpContext(httpRequest, response);

            if (this.HttpCallBack != null)
            {
                this.HttpCallBack.OnAfterHttpResponseEventHandler(this.GetClientInstance(), response);
            }

            if (response.StatusCode == 400)
            {
                throw new ApiException("Bad Request", context);
            }

            if (response.StatusCode == 401)
            {
                throw new ApiException("Unauthorized", context);
            }

            if (response.StatusCode == 403)
            {
                throw new ApiException("Access Denied", context);
            }

            // [200,208] = HTTP OK
            if ((response.StatusCode < 200) || (response.StatusCode > 208))
            {
                throw new ErrorException("Unexpected Error", context);
            }

            // handle errors defined at the API level.
            this.ValidateResponse(response, context);

            var result = ApiHelper.JsonDeserialize <Models.Session>(response.Body);
            ApiResponse <Models.Session> apiResponse = new ApiResponse <Models.Session>(response.StatusCode, response.Headers, result);

            return(apiResponse);
        }
Ejemplo n.º 37
0
 public static void Delete(ossContext context, Models.Session entity)
 {
     context.Session.Remove(entity);
     context.SaveChanges();
 }
Ejemplo n.º 38
0
        //----< GET api/File?fileName=foobar.txt&open=true >---------------
        //----< attempt to open or close FileStream >----------------------
        public HttpResponseMessage Get(string fileName, string open)
        {
            string sessionId;
              var response = new HttpResponseMessage();
              Models.Session session = new Models.Session();

              CookieHeaderValue cookie = Request.Headers.GetCookies("session-id").FirstOrDefault();
              if (cookie == null)
              {
            sessionId = session.incrSessionId();
            cookie = new CookieHeaderValue("session-id", sessionId);
            cookie.Expires = DateTimeOffset.Now.AddDays(1);
            cookie.Domain = Request.RequestUri.Host;
            cookie.Path = "/";
              }
              else
              {
            sessionId = cookie["session-id"].Value;
              }
              try
              {
            FileStream fs;
            string path = System.Web.HttpContext.Current.Server.MapPath("~\\Img\\");
            if (open == "download")  // attempt to open requested fileName
            {
              PrepDownloadController pd = new PrepDownloadController();
              pd.Index(Int32.Parse(fileName), "api");
              path = path + "collage";
              string currentFileSpec = path + "\\" + fileName + ".zip" ;
              fs = new FileStream(currentFileSpec, FileMode.Open);
              session.saveStream(fs, sessionId);
            }
            else if(open == "upload")
            {
                string[] items = fileName.Split('?');
                string storyId = items[0];
                string blkTitle = items[1];
                string blkContent = items[2];
                string blkOrder = items[3];
                string imgPath = items[4];

                string XMLpath = System.Web.HttpContext.Current.Server.MapPath("~\\App_Data\\Collages.xml");
                XDocument doc = XDocument.Load(XMLpath);
                Models.Story story = new Models.Story();
                Models.StoryBlock block = new Models.StoryBlock();
                if (!doc.Element("collages").Elements("collage").Elements("story").Elements("block").Any())
                {
                    block.id = 0;
                }
                else
                {
                    block.id = (int)(from S in doc.Descendants("block")
                                     orderby (int)S.Element("id")
                                     descending
                                     select (int)S.Element("id")).FirstOrDefault() + 1;
                }

                block.blockCaption = blkTitle;
                block.blockContent = blkContent;
                block.imgPath = storyId + "_" + block.id + Path.GetExtension(imgPath);
                block.bolckOrder = blkOrder;
                story.Create(Int32.Parse(storyId), block);

                path = path + storyId;
                if (!Directory.Exists(path))
                {
                    System.IO.Directory.CreateDirectory(path);

                }
                string currentFileSpec = path + "\\" + block.imgPath;
                fs = new FileStream(currentFileSpec, FileMode.OpenOrCreate);
                session.saveStream(fs, sessionId);
            }
            else  // close FileStream
            {
              fs = session.getStream(sessionId);
              session.removeStream(sessionId);
              fs.Close();
            }
            response.StatusCode = (HttpStatusCode)200;
              }
              catch
              {
            response.StatusCode = (HttpStatusCode)400;
              }
              finally  // return cookie to save current sessionId
              {
            response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
              }
              return response;
        }
        public void TryLoad_should_set_items_collection_when_loaded()
        {
            // Given
            IDictionary<string, object> items;
            IDictionary<string, object> sessionItems = new Dictionary<string, object> { { "test", "value" } };
            var session = new Models.Session { Id = Guid.NewGuid(), Items = sessionItems };
            A.CallTo(() => documentSession.Load<Models.Session>(session.Id.ToString())).Returns(session);

            // When
            sessionStore.TryLoadSession(BuildRequestWithSession(session.Id), out items);

            // Then
            items.Count.ShouldEqual(1);
            items["test"].ShouldEqual("value");
            A.CallTo(() => documentSession.Load<Models.Session>(session.Id.ToString())).MustHaveHappened();
        }