コード例 #1
0
ファイル: AddressController.cs プロジェクト: nielvrom/reuzze
        public ActionResult Create(ReUzze.Models.AddressViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                    throw new Exception();

                var regions = this.UnitOfWork.RegionRepository.Get().Count();
                if (regions == 0)
                {
                    var model = new ReUzze.Models.AddressViewModel
                    {
                        StatusMessage = "There are no regions in the database ...",
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                if (viewModel.SelectRegionId == 0)
                {
                    var model = new ReUzze.Models.AddressViewModel
                    {
                        StatusMessage = "You need to select a region!",
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                viewModel.Address.Latitude = Convert.ToDecimal(viewModel.Address.Latitude);
                viewModel.Address.Longitude = Convert.ToDecimal(viewModel.Address.Longitude);

                viewModel.Address.RegionId = viewModel.SelectRegionId;
                this.UnitOfWork.AddressRepository.Insert(viewModel.Address);
                this.UnitOfWork.Save();

                return RedirectToAction("Index", "Address");
            }
            catch
            {
                var model = new ReUzze.Models.AddressViewModel
                {
                    Address = viewModel.Address,
                    Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                };
                return View(model);
            }
        }
コード例 #2
0
ファイル: EntityController.cs プロジェクト: nielvrom/reuzze
        public ActionResult Create(ReUzze.Models.EntityViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                    return View(viewModel);

                if (viewModel.SelectedCategoryId == null)
                {
                    ViewBag.DropDownList = ReUzze.Helpers.EnumHelper.SelectListFor<Condition>();

                    var model = new ReUzze.Models.EntityViewModel()
                    {
                        StatusMessage = "You need to select a category!",
                        Categories = new SelectList(this.UnitOfWork.CategoryRepository.Get(), "Id", "Name")
                    };
                    PutTypeDropDownInto(model);
                    return View(model);
                }

                User usr = this.UnitOfWork.UserRepository.Get().Where(u => u.UserName == User.Identity.Name).FirstOrDefault();

                var entity = new Entity();
                entity.Title = viewModel.Title;
                entity.Description = viewModel.Description;
                entity.StartTime = viewModel.StartTime;
                entity.EndTime = viewModel.EndTime;
                entity.InstantSellingPrice = viewModel.InstantSellingPrice;
                if (viewModel.Condition.GetValueOrDefault().ToString() == "Used")
                {
                    entity.Condition = Condition.Used;
                }
                else
                {
                    entity.Condition = Condition.New;
                }
                entity.UserId = usr.Id;
                entity.RegionId = usr.Person.Address.RegionId;
                entity.CategoryId = Convert.ToInt16(viewModel.SelectedCategoryId);

                this.UnitOfWork.EntityRepository.Insert(entity);
                this.UnitOfWork.Save();

                // SAVE THE IMGES
                if (viewModel.Files.FirstOrDefault() != null)
                {
                    foreach (var file in viewModel.Files)
                    {
                        if (file.ContentLength > 0)
                        {
                            repository.AddMedia(entity.Id, Path.GetFileName(file.FileName), file.ContentType);

                            var fileName = Path.GetFileName(file.FileName);
                            var path = Path.Combine(Server.MapPath("~/Resources/uploads"), fileName);
                            file.SaveAs(path);
                        }
                    }
                }

                return RedirectToAction("Index", "Entity");
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }

            }

            return RedirectToAction("Create", "Entity");
        }
コード例 #3
0
ファイル: EntityController.cs プロジェクト: nielvrom/reuzze
 private void PutTypeDropDownInto(ReUzze.Models.EntityViewModel model)
 {
     model.GroupedTypeOptions = this.UnitOfWork.CategoryRepository.Get()
         .Where(t => t.ParentCategory != null)
         .OrderBy(t => t.ParentCategory.Name).ThenBy(t => t.Name)
         .Select(t => new GroupedSelectListItem
         {
             GroupKey = t.ParentId.ToString(),
             GroupName = t.ParentCategory.Name,
             Text = t.Name,
             Value = t.Id.ToString()
         }
     );
 }
コード例 #4
0
ファイル: EntityController.cs プロジェクト: nielvrom/reuzze
        public ActionResult Edit(ReUzze.Models.EntityViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                    return View(viewModel);

                return RedirectToAction("Index", "Entity");
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }

            }

            return RedirectToAction("Create", "Entity");
        }
コード例 #5
0
ファイル: EntityController.cs プロジェクト: nielvrom/reuzze
        public ActionResult Detail(ReUzze.Models.bid bid)
        {
            try
            {
                if (bid.entity.user.username != User.Identity.Name)
                {
                    var bidd = new Bid();
                    bidd.EntityId = bid.entity_id;
                    var user = this.UnitOfWork.UserRepository.Get().Where(u => u.UserName == User.Identity.Name).FirstOrDefault();
                    bidd.UserId = user.Id;
                    bidd.Amount = bid.bid_amount;
                    bidd.Date = DateTime.Now;
                    this.UnitOfWork.BidRepository.Insert(bidd);
                    this.UnitOfWork.Save();
                }
                else
                {

                }

                return RedirectToAction("Detail", "Entity");
            }
            catch(Exception e)
            {

            }

            return RedirectToAction("Detail", "Entity");
        }
コード例 #6
0
ファイル: AddressController.cs プロジェクト: nielvrom/reuzze
        public ActionResult Edit(ReUzze.Models.AddressViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                    return View(viewModel);

                var originalAddress = this.UnitOfWork.AddressRepository.GetByID(viewModel.Address.Id);

                if (originalAddress == null)
                    throw new Exception();

                originalAddress.City = viewModel.Address.City;
                originalAddress.Street = viewModel.Address.Street;
                originalAddress.StreetNumber = viewModel.Address.StreetNumber;
                originalAddress.RegionId = viewModel.SelectRegionId;

                this.UnitOfWork.AddressRepository.Update(originalAddress);
                this.UnitOfWork.Save();

                return RedirectToAction("Index", "Address");
            }
            catch
            {
                var model = new ReUzze.Models.AddressViewModel
                {
                    Address = viewModel.Address,
                    Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                };
                return View(model);
            }
        }
コード例 #7
0
ファイル: UserController.cs プロジェクト: nielvrom/reuzze
        public ActionResult Message(ReUzze.Models.MessageViewModel viewModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    var model = new ReUzze.Models.MessageViewModel();
                    return View(model);
                }

                User usr = this.UnitOfWork.UserRepository.Get().Where(u => u.UserName == User.Identity.Name).FirstOrDefault();

                MailMessage mail = new MailMessage();
                SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

                mail.From = new MailAddress(usr.Email);
                mail.To.Add(viewModel.Email);
                mail.Subject = viewModel.Subject;
                mail.Body = viewModel.Body;

                SmtpServer.Send(mail);

                if (viewModel.Copy == true)
                {
                    mail.From = new MailAddress(usr.Email);
                    mail.To.Add(usr.Email);
                    mail.Subject = "Copy: " + viewModel.Subject;
                    mail.Body = "Copy: " + viewModel.Body;

                    SmtpServer.Send(mail);
                }

                return RedirectToAction("Message", "User");
            }
            catch
            {

            }

            return RedirectToAction("Message", "User");
        }
コード例 #8
0
ファイル: UserController.cs プロジェクト: nielvrom/reuzze
        public ActionResult Create(ReUzze.Models.UserViewModel viewModel)
        {
            try
            {
                // Check if there are roles in the database
                var roles = this.UnitOfWork.RoleRepository.Get().Count();
                if (roles == 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "There are no roles in the database ...",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // Check if there are regions in database
                var regions = this.UnitOfWork.RegionRepository.Get().Count();
                if (regions == 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "There are no regions in the database ...",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // Check if user has selected region
                if (viewModel.SelectRegionId == 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "You need to select a region!",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // Check if user has selected role
                if (viewModel.SelectRoleId == 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "You need to select a role!",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // Check if username already exists
                var usrname = this.UnitOfWork.UserRepository.Get().Where(u => u.UserName == viewModel.UserName).Count();
                if (usrname != 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "Please choose another username. This one already exists.",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // Check if user email already exists
                var email = this.UnitOfWork.UserRepository.Get().Where(u => u.Email == viewModel.Email).Count();
                if (email != 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "This email address is already registered.",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                if (!ModelState.IsValid)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // ADDRESS
                var address = new Address();
                address.City = viewModel.City;
                address.Street = viewModel.Street;
                address.StreetNumber = viewModel.StreetNumber;
                address.Latitude = viewModel.Latitude;
                address.Longitude = viewModel.Longitude;
                address.RegionId = viewModel.SelectRegionId;

                this.UnitOfWork.AddressRepository.Insert(address);

                // PERSON
                var person = new Person();
                person.FirstName = viewModel.FirstName;
                person.SurName = viewModel.SurName;
                person.Address = address;
                this.UnitOfWork.PersonRepository.Insert(person);

                // USER

                var user = new User();
                user.UserName = viewModel.UserName;
                user.Email = viewModel.Email;
                user.PasswordSalt = BCrypt.Net.BCrypt.GenerateSalt(12);
                user.Password = BCrypt.Net.BCrypt.HashPassword(viewModel.Password, user.PasswordSalt);
                user.Rating = 10;
                user.RoleId = viewModel.SelectRoleId;
                user.Person = person;
                this.UnitOfWork.UserRepository.Insert(user);

                // ROLE NEEDS TO BE ADDED TO USER

                this.UnitOfWork.Save();

                return RedirectToAction("Index", "User");
            }
            catch (DbEntityValidationException dbEx)
            {
                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage);
                    }
                }

            }

            return RedirectToAction("Create", "User");
        }
コード例 #9
0
ファイル: UserController.cs プロジェクト: nielvrom/reuzze
        public ActionResult Edit(ReUzze.Models.UserViewModel viewModel)
        {
            try
            {
                // Check if there are roles in the database
                var roles = this.UnitOfWork.RoleRepository.Get().Count();
                if (roles == 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "There are no roles in the database ...",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // Check if there are regions in database
                var regions = this.UnitOfWork.RegionRepository.Get().Count();
                if (regions == 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "There are no regions in the database ...",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // Check if user has selected region
                if (viewModel.SelectRegionId == 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "You need to select a region!",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                // Check if user has selected role
                if (viewModel.SelectRoleId == 0)
                {
                    var model = new ReUzze.Models.UserViewModel
                    {
                        StatusMessage = "You need to select a role!",
                        Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                        Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name")
                    };
                    return View(model);
                }

                if (!ModelState.IsValid)
                    throw new Exception();

                var originalUser = this.UnitOfWork.UserRepository.GetByID(viewModel.Id);

                if (originalUser == null)
                    throw new Exception();

                originalUser.Person.FirstName = viewModel.FirstName;
                originalUser.Person.SurName = viewModel.SurName;
                originalUser.Person.Address.Street = viewModel.Street;
                originalUser.Person.Address.City = viewModel.City;
                originalUser.Person.Address.StreetNumber = viewModel.StreetNumber;
                originalUser.Person.Address.RegionId = viewModel.SelectRegionId;
                originalUser.UserName = viewModel.UserName;
                originalUser.Email = viewModel.Email;
                originalUser.Rating = viewModel.Rating;
                originalUser.RoleId = viewModel.SelectRoleId;
                originalUser.PasswordSalt = BCrypt.Net.BCrypt.GenerateSalt(12);
                originalUser.Password = BCrypt.Net.BCrypt.HashPassword(viewModel.Password, originalUser.PasswordSalt);
                originalUser.ModifiedDate = DateTime.Now;

                this.UnitOfWork.UserRepository.Update(originalUser);
                this.UnitOfWork.Save();

                return RedirectToAction("Index", "User");
            }
            catch
            {
                var originalUser = this.UnitOfWork.UserRepository.GetByID(viewModel.Id);
                var model = new ReUzze.Models.UserViewModel
                {
                    FirstName = originalUser.Person.FirstName,
                    SurName = originalUser.Person.SurName,
                    Street = originalUser.Person.Address.Street,
                    City = originalUser.Person.Address.City,
                    StreetNumber = originalUser.Person.Address.StreetNumber,
                    UserName = originalUser.UserName,
                    Email = originalUser.Email,
                    Rating = originalUser.Rating,
                    Regions = new SelectList(this.UnitOfWork.RegionRepository.Get(), "Id", "Name"),
                    SelectRegionId = originalUser.Person.Address.RegionId,
                    Roles = new SelectList(this.UnitOfWork.RoleRepository.Get(), "Id", "Name"),
                    SelectRoleId = originalUser.RoleId
                };
                return View(model);
            }
        }