Exemplo n.º 1
0
        public IHttpActionResult DeleteAccommodation(int id)
        {
            Accommodation accommodation = db.Accommodations.Find(id);

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

            var user = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);

            if (user != null)
            {
                BAContext BAContext = new BAContext();
                var       userRole  = user.Roles.First().RoleId;
                var       role      = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);
                bool      isManager = role.Name.Equals("Manager");

                if (isManager && (user != null && accommodation != null && accommodation.OwnerId == user.AppUserId))
                {
                    db.Accommodations.Remove(accommodation);
                    db.SaveChanges();

                    return(Ok(accommodation));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            else
            {
                return(Unauthorized());
            }
        }
Exemplo n.º 2
0
 public VoteMaste GetVoteMaste(int id)
 {
     try
     {
         VoteMaste voteMaste = null;
         using (var db = new BAContext())
         {
             try
             {
                 // 更新阅读数量
                 db.Database.ExecuteSqlCommand(string.Format("update Ss_list  set Web_Hits = Web_Hits + 1 where ID = {0} ", id));
             }
             finally
             {
                 // 读取文章内容。
                 var sqlText = string.Format("select ID,Web_Title as Title,Web_Content as Content, Web_Hits as Hits, time_Start as StartTime, time_End as EndTime, (select count(*) from [Ss_list] l where l.Gid = t.ID) as UserCount from [Site] t where t.ID = {0} ", id);
                 voteMaste = db.Database.SqlQuery <VoteMaste>(sqlText).FirstOrDefault();
                 var parser = new HtmlParser(voteMaste.Content);
                 parser.KeepTag(new[] { "p", "img" });
                 var result = parser.Text();
                 // 清除内嵌样式。
                 var content = Regex.Replace(result, "style=\"(.*?)\"", "style=\"TEXT-INDENT: 2em;\"");
                 voteMaste.Content = content;
             }
             return(voteMaste);
         }
     }
     catch (Exception ex)
     {
         // 待写日志。
         throw ex;
     }
 }
Exemplo n.º 3
0
        public IHttpActionResult PostRoom(Room room)
        {
            var user = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);

            if (user != null)
            {
                BAContext     BAContext     = new BAContext();
                var           userRole      = user.Roles.First().RoleId;
                var           role          = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);
                bool          isManager     = role.Name.Equals("Manager");
                Accommodation accommodation = db.Accommodations.FirstOrDefault(x => x.Id == room.AccomodationId);

                if (isManager && (user != null && accommodation != null && accommodation.OwnerId == user.AppUserId))
                {
                    if (!ModelState.IsValid)
                    {
                        return(BadRequest(ModelState));
                    }

                    db.Rooms.Add(room);
                    db.SaveChanges();

                    return(CreatedAtRoute("DefaultApi", new { controller = "Room", id = room.Id }, room));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            else
            {
                return(Unauthorized());
            }
        }
        public IHttpActionResult Register(RegisterBindingModel model)
        {
            BookingApp.Models.BAContext context = new BAContext();

            if (model.Name != "" && model.Lastname != "" && model.Email != "" && model.Password != "" && model.Username != "")
            {
                AppUser appUser = new AppUser()
                {
                    Name = model.Name, LastName = model.Lastname
                };

                var user = new BAIdentityUser()
                {
                    Id           = Guid.NewGuid().ToString(),
                    UserName     = model.Username,
                    Email        = model.Email,
                    appUser      = appUser,
                    PasswordHash = BAIdentityUser.HashPassword(model.Password)
                };

                var userStore   = new UserStore <BAIdentityUser>(context);
                var userManager = new UserManager <BAIdentityUser>(userStore);

                userManager.Create(user);
                userManager.AddToRole(user.Id, model.Role);
                return(Ok());
            }
            else
            {
                return(BadRequest("Some fields are empty."));
            }
        }
Exemplo n.º 5
0
 public Article GetArticle(int id)
 {
     try
     {
         Article article = null;
         using (var db = new BAContext())
         {
             try
             {
                 // 更新阅读数量
                 db.Database.ExecuteSqlCommand(string.Format("update LZ8_Article  set Hits = Hits + 1 where ID = {0} ", id));
             }
             finally
             {
                 // 读取文章内容。
                 var sqlText = string.Format("select ID,Title, AuthorName, Intro, Hits, cast(IsGood as int) as IsGood, Content, IndexPicUrl, updatetime from dbo.LZ8_Article t where t.ID = {0} ", id);
                 article = db.Database.SqlQuery <Article>(sqlText).FirstOrDefault();
                 var parser = new HtmlParser(article.Content);
                 parser.KeepTag(new[] { "p", "img" });
                 var result = parser.Text();
                 // 清除内嵌样式。
                 var content = Regex.Replace(result, "style=\"(.*?)\"", "style=\"TEXT-INDENT: 2em;\"");
                 article.Content = content;
             }
             return(article);
         }
     }
     catch (Exception ex)
     {
         // 待写日志。
         throw ex;
     }
 }
 public HomeController(BAContext context, ILogger <HomeController> logger, UserManager <IdentityUser> userManager, SignInManager <IdentityUser> signInManager)
 {
     _logger        = logger;
     _userManager   = userManager;
     _signInManager = signInManager;
     _context       = context;
 }
Exemplo n.º 7
0
        public IHttpActionResult PostAccommodation()
        {
            var user = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);

            if (user == null)
            {
                return(Unauthorized());
            }

            BAContext BAContext = new BAContext();
            var       userRole  = user.Roles.First().RoleId;
            var       role      = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);
            bool      isManager = role.Name.Equals("Manager");
            AppUser   appUser   = BAContext.AppUsers.Where(au => au.Id == user.AppUserId).FirstOrDefault();

            if (isManager && (user != null && !appUser.IsBanned))
            {
                Accommodation accommodation = new Accommodation();

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

                var httpRequest = HttpContext.Current.Request;
                accommodation = JsonConvert.DeserializeObject <Accommodation>(httpRequest.Form[0]);

                foreach (string file in httpRequest.Files)
                {
                    HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.Created);

                    var postedFile = httpRequest.Files[file];
                    if (postedFile != null && postedFile.ContentLength > 0)
                    {
                        IList <string> AllowedFileExtensions = new List <string> {
                            ".jpg", ".gif", ".png"
                        };
                        var ext       = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf('.'));
                        var extension = ext.ToLower();
                        if (!AllowedFileExtensions.Contains(extension))
                        {
                            return(BadRequest());
                        }
                        else
                        {
                            var filePath = HttpContext.Current.Server.MapPath("~/Content/AccommodationPictures/" + postedFile.FileName);
                            accommodation.ImageUrl = "Content/AccommodationPictures/" + postedFile.FileName;
                            postedFile.SaveAs(filePath);
                        }
                    }
                }

                db.Accommodations.Add(accommodation);
                db.SaveChanges();

                return(CreatedAtRoute("DefaultApi", new { controller = "Accommodation", id = accommodation.Id }, accommodation));
            }
            return(Unauthorized());
        }
Exemplo n.º 8
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var allowedOrigin = "*";

            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });

            var roleHeader   = "Role";
            var userIDHeader = "appUserID";

            context.OwinContext.Response.Headers.Add("Access-Control-Expose-Headers", new[] { roleHeader, userIDHeader });

            ApplicationUserManager userManager = context.OwinContext.GetUserManager <ApplicationUserManager>();

            BAIdentityUser user = await userManager.FindAsync(context.UserName, context.Password);

            context.OwinContext.Response.Headers.Add(userIDHeader, new[] { user.appUserId.ToString() });

            if (user == null)
            {
                context.SetError("invalid_grant", "The user name or password is incorrect.!!!!");
                return;
            }

            BAContext BAContext = new BAContext();
            var       userRole  = user.Roles.First().RoleId;
            var       role      = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);

            //BAContext.Roles.Where(x =>
            //bool isAdmin = await userManager.IsInRoleAsync(user.UserName, "Admin");



            if (role.Name.Equals("Admin"))
            {
                context.OwinContext.Response.Headers.Add("Role", new[] { "Admin" });
            }
            else if (role.Name.Equals("Manager"))
            {
                context.OwinContext.Response.Headers.Add("Role", new[] { "Manager" });
            }
            else
            {
                context.OwinContext.Response.Headers.Add("Role", new[] { "User" });
            }


            //if (!user.EmailConfirmed)
            //{
            //    context.SetError("invalid_grant", "AppUser did not confirm email.");
            //    return;
            //}

            ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager, "JWT");

            var ticket = new AuthenticationTicket(oAuthIdentity, null);

            context.Validated(ticket);
        }
Exemplo n.º 9
0
        public IHttpActionResult PutAccommodation(int id, Accommodation a)
        {

            IdentityUser user = this.UserManager.FindById(User.Identity.GetUserId());
            int? userId = (user as BAIdentityUser).appUserId;
            var userRole = user.Roles.First().RoleId;
            BAContext BAContext = new BAContext();
            var role = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);

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

            if (id != a.Id)
            {
                return BadRequest();
            }

            if (!(role.Name.Equals("Admin")) && !(role.Name.Equals("Manager")) && (a.AppUserId != userId))
            {
                return Unauthorized();
            }

            AppUser manager = db.AppUsers.Where((x) => x.Id.Equals(a.AppUserId)).FirstOrDefault();
            if ((manager == null) || (manager.Banned))
            {
                return Unauthorized();
            }

            if(role.Name.Equals("Admin"))
            {
                AccommodationNotificationHub.AccommodationApproved(a);
            }

            db.Entry(a).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!AccommodationExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return StatusCode(HttpStatusCode.NoContent);
        }
Exemplo n.º 10
0
        public IHttpActionResult PutRoom(int id, Room room)
        {
            var user = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);

            room.Accommodation = db.Accommodations.Find(room.AccomodationId);
            if (user != null)
            {
                BAContext BAContext = new BAContext();
                var       userRole  = user.Roles.First().RoleId;
                var       role      = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);
                bool      isManager = role.Name.Equals("Manager");

                if (isManager && (user != null && room.Accommodation != null && room.Accommodation.OwnerId == user.AppUserId))
                {
                    if (!ModelState.IsValid)
                    {
                        return(BadRequest(ModelState));
                    }

                    if (id != room.Id)
                    {
                        return(BadRequest());
                    }

                    db.Entry(room).State = EntityState.Modified;

                    try
                    {
                        db.SaveChanges();
                    }
                    catch (DbUpdateConcurrencyException)
                    {
                        if (!RoomExists(id))
                        {
                            return(NotFound());
                        }
                        else
                        {
                            throw;
                        }
                    }

                    return(StatusCode(HttpStatusCode.NoContent));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            else
            {
                return(Unauthorized());
            }
        }
Exemplo n.º 11
0
        public ActionResult Index()
        {
            ViewBag.Title = "Home Page";

            using (var db = new BAContext())
            {
                var articles = db.Database.SqlQuery <Article>("select top 20 ID,Title, AuthorName, Intro, Hits, IsGood, null as Content, IndexPicUrl, updatetime from dbo.LZ8_Article t where t.IncludePic = 1 and t.deleted=0 order by t.updatetime desc").ToList();
            }

            return(View());
        }
Exemplo n.º 12
0
 public DataBaseHelper()
 {
     this.db = new BAContext();
     this.accomodationList     = new List <Accommodation>(this.db.Accommodations);
     this.accomodationTypeList = new List <AccommodationType>(this.db.AccommodationTypes);
     this.commentList          = new List <Comment>(this.db.Comments);
     this.countryList          = new List <Country>(this.db.Countrys);
     this.placeList            = new List <Place>(this.db.Places);
     this.regionList           = new List <Region>(this.db.Regions);
     this.roomList             = new List <Room>(this.db.Rooms);
     this.reservationList      = new List <RoomReservations>(this.db.RoomReservationss);
 }
Exemplo n.º 13
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            var allowedOrigin = "*";

            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });

            ApplicationUserManager userManager = context.OwinContext.GetUserManager <ApplicationUserManager>();

            BAIdentityUser user = await userManager.FindAsync(context.UserName, context.Password);

            if (user == null)
            {
                context.SetError("invalid_grant", "The user name or password is incorrect.!!!!");
                return;
            }

            BAContext db = new BAContext();

            var userRole = user.Roles.FirstOrDefault();
            var role     = db.Roles.SingleOrDefault(r => r.Id == userRole.RoleId);
            var roleName = role?.Name;

            if (roleName == "Admin")
            {
                context.OwinContext.Response.Headers.Add("Role", new[] { "Admin" });
            }
            else if (roleName == "Manager")
            {
                context.OwinContext.Response.Headers.Add("Role", new[] { "Manager" });
            }
            else
            {
                context.OwinContext.Response.Headers.Add("Role", new[] { "User" });
            }

            //Mora se dodati u header response-a kako bi se se Role atribut
            //mogao procitati na klijentskoj strani
            context.OwinContext.Response.Headers.Add("Access-Control-Expose-Headers", new[] { "Role", "user_id" });
            context.OwinContext.Response.Headers.Add("user_id", new[] { user.Id });
            //if (!user.EmailConfirmed)
            //{
            //    context.SetError("invalid_grant", "AppUser did not confirm email.");
            //    return;
            //}

            ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager, "JWT");

            var ticket = new AuthenticationTicket(oAuthIdentity, null);



            context.Validated(ticket);
        }
Exemplo n.º 14
0
        public IHttpActionResult GetAccommodations(int id)
        {
            BAContext db = new BAContext();

            Accommodation acmd = db.AppAccommodations.Find(id);

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

            return(Ok(acmd));
        }
Exemplo n.º 15
0
 [HttpGet] // 此方法名称没用以Get开头,需要加上[HttpGet]属性。
 public void DoIsGood(int articleId, int userId)
 {
     using (var db = new BAContext())
     {
         try
         {
             // 更新阅读数量
             db.Database.ExecuteSqlCommand(string.Format("update LZ8_Article  set IsGood = IsGood + 1 where ID = {0} ", articleId));
             // 记录点赞人
             //...
         }
         catch (Exception ex)
         {
             // 待写日志。
             throw ex;
         }
     }
 }
Exemplo n.º 16
0
        public List <VoteMaste> GetVotes()
        {
            var result = new List <VoteMaste>();

            try
            {
                using (var db = new BAContext())
                {
                    result = db.Database.SqlQuery <VoteMaste>("select ID,Web_Title as Title,Web_Content as Content, Web_Hits as Hits, time_Start as StartTime, time_End as EndTime, (select count(*) from [Ss_list] l where l.Gid = t.ID) as UserCount from [Site] t order by t.ID desc").ToList();
                }
            }
            catch (Exception ex)
            {
                // 待写日志。
                throw ex;
            }
            return(result);
        }
Exemplo n.º 17
0
        /// <summary>
        /// 读取最新的文章(页面加载时使用)
        /// </summary>
        /// <returns></returns>
        public List <Article> GetArticles()
        {
            var articles = new List <Article>();

            try
            {
                using (var db = new BAContext())
                {
                    articles = db.Database.SqlQuery <Article>("select top 20 ID,Title, AuthorName, Intro, Hits, cast(IsGood as int) as IsGood, null as Content, IndexPicUrl, updatetime from dbo.LZ8_Article t where t.IncludePic = 1 and t.deleted=0 and charindex('UploadFiles', t.IndexPicUrl) > 0 order by t.updatetime desc").ToList();
                }
            }
            catch (Exception ex)
            {
                // 待写日志。
                throw ex;
            }
            return(articles);
        }
Exemplo n.º 18
0
        public IHttpActionResult DeleteRoom(int id)
        {
            var  user = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);
            Room room = db.Rooms.Find(id);

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

            if (user != null)
            {
                BAContext BAContext = new BAContext();
                var       userRole  = user.Roles.First().RoleId;
                var       role      = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);
                bool      isManager = role.Name.Equals("Manager");

                Accommodation accommodation = db.Accommodations.FirstOrDefault(x => x.Id == room.AccomodationId);

                if (isManager && (user != null && accommodation != null && accommodation.OwnerId == user.AppUserId))
                {
                    IQueryable <RoomReservation> roomReservations = db.RoomReservations.Where(rr => rr.RoomId == room.Id);

                    foreach (RoomReservation roomReservation in roomReservations)
                    {
                        db.RoomReservations.Remove(roomReservation);
                    }

                    db.Rooms.Remove(room);
                    db.SaveChanges();

                    return(Ok(room));
                }
                else
                {
                    return(Unauthorized());
                }
            }
            else
            {
                return(Unauthorized());
            }
        }
Exemplo n.º 19
0
        public IHttpActionResult GetRooms(int id)
        {
            BAContext db = new BAContext();

            List <Room> rooms = new List <Room>(10);

            foreach (var room in db.AppRooms)
            {
                if (room.AccommodationId == id)
                {
                    rooms.Add(room);
                }
            }

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

            return(Ok(rooms));
        }
Exemplo n.º 20
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            BAContext context = new BAContext();

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

            AppUser _appUser = new AppUser(model.Name + " " + model.Lastname);

            context.AppUsers.AddOrUpdate(a => a.FullName, _appUser);
            ContextHelper.SaveChanges(context);

            //var user = new BAIdentityUser() { UserName = model.Email, Email = model.Email };
            var user = new BAIdentityUser(model.Username, model.Password, model.Email)
            {
                appUserId = _appUser.Id
            };

            var userStore   = new UserStore <BAIdentityUser>(context);
            var userManager = new UserManager <BAIdentityUser>(userStore);

            userManager.Create(user);
            // proveriti ovde, ili na klijentu, da li je rola validna
            userManager.AddToRole(user.Id, model.Role);

            //IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            // kako god napravila password, ovde pada, ne bude succeded, i nikad nije dobra sifra =.=
            // treba napraviti ako ovde padne, da se onaj AppUser brise iz baze sto je napravljen gore
            //if (!result.Succeeded)
            //{
            //    return GetErrorResult(result);
            //}

            return(Ok());
        }
Exemplo n.º 21
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            /*if (!ModelState.IsValid)
             * {
             *  return BadRequest(ModelState);
             * }*/
            BookingApp.Models.BAContext context = new BAContext();

            //var userStore = new UserStore<BAIdentityUser>(context);
            //var userManager = new UserManager<BAIdentityUser>(userStore);

            AppUser apuser = new AppUser {
                Name = model.Username, Lastname = model.Lastname
            };

            context.AppUsers.Add(apuser);
            context.SaveChanges();

            string guidId = Guid.NewGuid().ToString();
            var    user   = new BAIdentityUser()
            {
                Id = guidId, UserName = model.Username, Email = model.Email, PasswordHash = BAIdentityUser.HashPassword(model.Password), appUserId = apuser.Id
            };

            IdentityResult result = await UserManager.CreateAsync(user);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            //UserManager.Create(user);
            //UserManager.AddToRole(user.Id, model.Role);

            UserManager.AddToRole(user.Id, model.Role);

            return(Ok());
        }
Exemplo n.º 22
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            BAContext db = new BAContext();

            db.AppUsers.Add(new AppUser()
            {
                UserName = model.Username, FullName = model.Name + " " + model.Surname
            });

            db.SaveChanges();

            var appUser = db.AppUsers.FirstOrDefault(p => p.UserName == model.Username);

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

            var user = new BAIdentityUser()
            {
                UserName = model.Username, Email = model.Email, Id = model.Username, appUserId = appUser.Id
            };

            IdentityResult result = await UserManager.CreateAsync(user, model.Password);

            if (!result.Succeeded)
            {
                return(GetErrorResult(result));
            }

            return(Ok());
        }
Exemplo n.º 23
0
        public async Task <IHttpActionResult> Register(RegisterBindingModel model)
        {
            BookingApp.Models.BAContext context = new BAContext();

            AppUser appUser = new AppUser()
            {
                Name = model.Name, Surname = model.Surname
            };

            var user = new BAIdentityUser()
            {
                Id = Guid.NewGuid().ToString(), UserName = model.Email, Email = model.Email, appUser = appUser, PasswordHash = BAIdentityUser.HashPassword(model.Password)
            };

            var userStore = new UserStore <BAIdentityUser>(context);

            var userManager = new UserManager <BAIdentityUser>(userStore);

            userManager.Create(user);
            userManager.AddToRole(user.Id, model.Role);

            return(Ok());
        }
Exemplo n.º 24
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            try
            {
                var allowedOrigin = "*";
                context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { allowedOrigin });

                var roleHeader     = "Role";
                var userIdHeader   = "UserId";
                var userNameHeader = "UserName";
                context.OwinContext.Response.Headers.Add("Access-Control-Expose-Headers", new[] { roleHeader, userIdHeader, userNameHeader });

                ApplicationUserManager userManager = context.OwinContext.GetUserManager <ApplicationUserManager>();

                BAIdentityUser user = await userManager.FindAsync(context.UserName, context.Password);


                if (user == null)
                {
                    context.SetError("invalid_grant", "The user name or password is incorrect.!!!!");
                    return;
                }

                BAContext BAContext = new BAContext();
                var       userRole  = user.Roles.First().RoleId;
                var       role      = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);

                //BAContext.Roles.Where(x =>
                //bool isAdmin = await userManager.IsInRoleAsync(user.UserName, "Admin");



                if (role.Name.Equals("Admin"))
                {
                    context.OwinContext.Response.Headers.Add("Role", new[] { "Admin" });
                }
                else if (role.Name.Equals("Manager"))
                {
                    context.OwinContext.Response.Headers.Add("Role", new[] { "Manager" });
                }
                else
                {
                    context.OwinContext.Response.Headers.Add("Role", new[] { "User" });
                }

                context.OwinContext.Response.Headers.Add("UserId", new[] { user.AppUserId.ToString() });


                if (role.Name.Equals("Admin"))
                {
                    string username = "******" + user.Email;
                    context.OwinContext.Response.Headers.Add("UserName", new[] { username });
                }
                else
                {
                    AppUser appUser  = BAContext.AppUsers.Where(au => au.Id == user.AppUserId).FirstOrDefault();
                    string  username = role.Name + ": " + appUser.Name + " " + appUser.LastName;
                    context.OwinContext.Response.Headers.Add("UserName", new[] { username });
                }

                ClaimsIdentity oAuthIdentity = await user.GenerateUserIdentityAsync(userManager, "JWT");

                var ticket = new AuthenticationTicket(oAuthIdentity, null);

                context.Validated(ticket);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
Exemplo n.º 25
0
 public DonorController(BAContext context, UserManager <IdentityUser> userManager)
 {
     _context     = context;
     _userManager = userManager;
 }
 public HomeController(BAContext context)
 {
     dbContext = context;
 }
Exemplo n.º 27
0
        public IHttpActionResult PostComment(Comment comment)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var       user      = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);
            BAContext BAContext = new BAContext();
            var       userRole  = user.Roles.First().RoleId;
            var       role      = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);
            bool      isAppUser = role.Name.Equals("AppUser");

            if (!isAppUser)
            {
                return(Unauthorized());
            }

            using (var context = new BAContext())
            {
                var reservations = from b in context.RoomReservations
                                   where (b.AppUserId == comment.AppUserId && b.IsCanceled == false &&
                                          b.Room.AccomodationId == comment.AccommodationId)
                                   select b;

                foreach (var item in reservations)
                {
                    if (item.StartDate < DateTime.Now)
                    {
                        try
                        {
                            db.Comments.Add(comment);
                            db.SaveChanges();
                        }
                        catch (Exception e)
                        {
                            return(BadRequest("Cannot add comment."));
                        }

                        List <Comment> allComments = db.Comments.Where(cm => cm.AccommodationId == comment.AccommodationId).ToList();
                        decimal        sum         = 0;
                        decimal        averageGrade;

                        foreach (Comment comm in allComments)
                        {
                            sum += (decimal)comm.Grade;
                        }

                        if (allComments.Count == 0)
                        {
                            averageGrade = 0;
                        }
                        else
                        {
                            averageGrade = sum / allComments.Count;
                        }

                        Accommodation acc = db.Accommodations.Where(accomm => accomm.Id == comment.AccommodationId).FirstOrDefault();
                        if (acc == null)
                        {
                            return(BadRequest("Cannot refresh average grade."));
                        }
                        acc.AverageGrade = averageGrade;

                        db.Entry(acc).State = EntityState.Modified;

                        try
                        {
                            db.SaveChanges();
                        }
                        catch (DbUpdateConcurrencyException)
                        {
                            return(BadRequest("Cannot refresh average grade."));
                        }

                        return(CreatedAtRoute("DefaultApi", new { controller = "Comment" /*, Id = place.Id*/ }, comment));
                    }
                }
            }
            return(Unauthorized());
        }
Exemplo n.º 28
0
        public IHttpActionResult DeleteComment(int id1, int id2)
        {
            var user = db.Users.FirstOrDefault(u => u.UserName == User.Identity.Name);

            if (user == null)
            {
                return(Unauthorized());
            }

            BAContext BAContext = new BAContext();
            var       userRole  = user.Roles.First().RoleId;
            var       role      = BAContext.Roles.FirstOrDefault(r => r.Id == userRole);
            bool      isAppUser = role.Name.Equals("AppUser");

            if (!isAppUser)
            {
                return(Unauthorized());
            }



            Comment comment = db.Comments.Find(id1, id2);

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

            db.Comments.Remove(comment);
            db.SaveChanges();

            List <Comment> allComments = db.Comments.Where(cm => cm.AccommodationId == comment.AccommodationId).ToList();
            decimal        sum         = 0;
            decimal        averageGrade;

            foreach (Comment comm in allComments)
            {
                sum += (decimal)comm.Grade;
            }

            if (allComments.Count == 0)
            {
                averageGrade = 0;
            }
            else
            {
                averageGrade = sum / allComments.Count;
            }

            Accommodation acc = db.Accommodations.Where(accomm => accomm.Id == comment.AccommodationId).FirstOrDefault();

            if (acc == null)
            {
                return(BadRequest("Cannot refresh average grade."));
            }
            acc.AverageGrade = averageGrade;

            db.Entry(acc).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                return(BadRequest("Cannot refresh average grade."));
            }

            return(Ok(comment));
        }
 public ZahtjevController(BAContext context, IHttpContextAccessor httpContextAccessor, UserManager <IdentityUser> userManager)
 {
     _context             = context;
     _httpContextAccessor = httpContextAccessor;
     _userManager         = userManager;
 }
 public DonacijaController(BAContext context)
 {
     _context = context;
 }