public ActionResult CreateOffer(CreateOfferViewModel model) { if (ModelState.IsValid) { string companyId = User.Identity.GetUserId(); JobOffer offer = new JobOffer(); offer.Title = model.Title; offer.Description = model.Description; offer.DateCreated = DateTime.Now; offer.TownId = model.TownId; offer.IsActive = true; offer.CompanyId = companyId; offer.BusinessSectorId = model.BusinessSectorId; offer.IsPermanent = model.IsPermanent.MapBools(model.IsTemporary); offer.IsFullTime = model.IsFullTime.MapBools(model.IsPartTime); this.Data.JobOffers.Add(offer); MessageViewModel message = new MessageViewModel { Type = MessageType.Success, Text = "You have successfully created your job offer." }; this.TempData["Message"] = message; // TempData["Success"] = "You have successfully created your job offer."; return(this.RedirectToAction("CreateOffer")); } return(this.View(model)); }
public async Task<IActionResult> Create(CreateOfferViewModel viewModel) { var specialist = await this.userManager.GetUserAsync(this.User); var userId = string.Empty; // The specialist can make an offer in two ways - from inquiry/from Ad. If the offer is being made from an inquiry, the Ad is null. // The logic of the app: only 1 offer by Ad / many offers by inquiry // viewModel.Id => offer ID if (viewModel.Id != null) { userId = await this.adsService.GetUserIdByAdIdAsync(viewModel.Id); var existingOffer = await this.offersService.GetExistingOfferAsync<ExistingOfferViewModel>(viewModel.Id, userId, specialist.SpecialistDetailsId); if (existingOffer != null) { return this.View(nameof(this.ExistingOffer), existingOffer); } } else { userId = viewModel.ApplicationUserId; } var inputModel = new CreateOfferInputModel { SpecialistDetailsId = specialist.SpecialistDetailsId, ApplicationUserId = userId, AdId = viewModel.Id, InquiryId = viewModel.InquiryId, PhoneNumber = specialist.PhoneNumber, }; return this.View(inputModel); }
public ActionResult Create() { var currentUserId = User.Identity.GetUserId(); var userProfile = _userProfileService.GetUserProfiles(u => u.Id == currentUserId, i => i.ApplicationUser).ToList().SingleOrDefault(); var appUser = userProfile?.ApplicationUser; if (appUser == null) { return(HttpNotFound()); } if (!(appUser.EmailConfirmed)) { return(View("PhoneNumberRequest")); } else { var model = new CreateOfferViewModel(); IList <SelectListItem> games = new List <SelectListItem>(); model.SellerPaysMiddleman = true; //games.Add(new SelectListItem { Value = "", Text = "Выберите игру", Selected = true, Disabled = tr }); foreach (var game in _gameService.GetGames().OrderBy(g => g.Rank)) { games.Add(new SelectListItem { Value = game.Value, Text = game.Name }); } model.Games = games; return(View(model)); } }
public IActionResult Create(CreateOfferViewModel viewModel) { var offer = this.offersService.CreateOffer(viewModel.Make, viewModel.Model, viewModel.Year, viewModel.Price, viewModel.Engine, viewModel.Gearbox, viewModel.Description, viewModel.ImgUrl); this.context.Offers.Add(offer); this.context.SaveChanges(); return(this.Redirect("/Offers/OffersList")); }
public void Setup() { testModel = new CreateOfferViewModel(new DialogCoordinator()); testApp1 = new Appliance() { Name = "app1", CreationDate = DateTime.Now, Type = ApplianceTypes.Boiler }; testApp1.DataSheet = new HeatingUnitDataSheet(); testApp2 = new Appliance() { Name = "app2", CreationDate = DateTime.Now, Type = ApplianceTypes.Container }; testApp2.DataSheet = new ContainerDataSheet(); testPack = new PackagedSolution() { Name = "testPack" }; testPack.ApplianceInstances.Add(new ApplianceInstance() { Appliance = testApp1, IsPrimary = true }); testPack.ApplianceInstances.Add(new ApplianceInstance() { Appliance = testApp2 }); testPack.CreationDate = DateTime.Now; testPack.EnergyLabel = new List <EEICalculationResult>(); testPack2 = new PackagedSolution() { Name = "testPack2" }; testPack2.ApplianceInstances.Add(new ApplianceInstance() { Appliance = testApp2, IsPrimary = true }); testPack2.ApplianceInstances.Add(new ApplianceInstance() { Appliance = testApp1 }); testPack2.CreationDate = DateTime.Now; testPack2.EnergyLabel = new List <EEICalculationResult>(); testClient = new Client(); testClient.ClientInformation = new ClientInformation(); testClient.CreationDate = DateTime.Now; off = new Offer(); off.CreationDate = DateTime.Now; off.PackagedSolution = testPack; off.Client = testClient; }
public void SendAndSaveOfferFromUser(CreateOfferViewModel model) { var msg = _parseEmailService.OfferFromUser(model); var email = _smtpManager.SendEmail(msg); var message = Mapper.Map <Message>(model); message.Body = email.Body; _saveEmailService.SaveEmail(message); }
public ActionResult CreateOffer(CreateOfferViewModel model) { if (ModelState.IsValid) { _emailRepository.SendAndSaveOfferFromUser(model); return(RedirectToAction("QuestionConfirmation")); } return(View(model)); }
public ActionResult CreateOffer([FromBody] CreateOfferViewModel model) { if (ModelState.IsValid) { string companyId = User.Claims.Where(x => x.Type == "UserId").FirstOrDefault().Value; _offerService.Add(model, companyId); return(Ok("Job offer is successfully created.")); } return(BadRequest(model)); }
public EmailMessage OfferFromUser(CreateOfferViewModel model) { var template = _templateRepository.OfferFromUser(); var body = Engine.Razor.RunCompile(template, "OfferFromUser", typeof(CreateOfferViewModel), model); var message = new EmailMessage() { Body = body, From = model.Email, Subject = "Oferta od użytkownika" }; return(message); }
public async Task <IActionResult> CreateOffer(string id, CreateOfferViewModel input) { var user = await this.userManager.GetUserAsync(this.User); var offerID = await this.offerService.CreateOffer(id, input, user); if (offerID != null) { await this.vehicleService.BookVehicle(id); } // redirect to MyOffers menu return(this.Redirect("/Vehicle/AllVehicles")); }
public async Task <ActionResult> Create() { var model = new CreateOfferViewModel(); foreach (var game in (await gameService.GetAllGamesAsync()).OrderBy(g => g.Name)) { model.Games.Add( new SelectListItem { Value = game.Value, Text = game.Name } ); } return(View(model)); }
public void Add(CreateOfferViewModel model, string companyId) { JobOffer offer = new JobOffer(); offer.Title = model.Title; offer.Description = model.Description; offer.DateCreated = DateTime.Now; offer.TownId = model.TownId; offer.IsActive = true; offer.CompanyId = companyId; offer.BusinessSectorId = model.BusinessSectorId; offer.IsPermanent = model.IsPermanent; offer.IsFullTime = model.IsFullTime; _jobOfferRepository.Add(offer); _jobOfferRepository.SaveChanges(); }
public ActionResult Create(CreateOfferViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var offer = Mapper.Map <CreateOfferViewModel, Offer>(model); using (var repo = new Repository <Offer>()) { offer = repo.InsertOrUpdate(offer); } return(RedirectToAction("Detail", new { id = offer.Id })); }
public ActionResult Create(CreateOfferViewModel createModel) { if (!ModelState.IsValid) { return(PartialView(createModel)); } string userId = User.Identity.GetUserId(); CreateOfferParams createOfferParams = new CreateOfferParams() { EmployeeId = userId, JobId = createModel.JobId, Text = createModel.Text, ImplementationDays = createModel.DaysToImplement, OfferPayment = createModel.OfferPayment }; _offerService.CreateOffer(createOfferParams); _commitProvider.SaveChanges(); return(Redirect(Request.UrlReferrer.PathAndQuery)); }
public IActionResult Create([FromBody] CreateOfferViewModel viewModel) { try { _createOfferCommand.Execute(new CreateOfferDto() { AdId = viewModel.AdId, Amount = viewModel.Amount, UserId = GetUserId().Result }); return(StatusCode(201)); } catch (EntityNotFoundException e) { return(UnprocessableEntity(e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public IActionResult CreateOffer(string id) { var vehicleInfo = this.vehicleService.GetById(id); var details = new VehicleOfferDetailsViewModel { Brand = vehicleInfo.Brand, Model = vehicleInfo.Model, CoupeType = vehicleInfo.CoupeType.ToString(), FuelConsumption = vehicleInfo.FuelConsumption, RequiredLicenseCategory = vehicleInfo.RequiredLicenseCategory.ToString(), Horsepower = vehicleInfo.Horsepower, PricePerDay = vehicleInfo.PricePerDay, }; var viewModel = new CreateOfferViewModel(); viewModel.VehicleDetails = details; return(this.View(viewModel)); }
public async Task <IActionResult> Create(CreateOfferViewModel model) { if (this.ModelState.IsValid) { var tutor = await userManager.GetUserAsync(HttpContext.User); // TO DO: Enable File Uploading for images var dto = mapper.Map <CreateOfferViewModel, OfferDTO>(model); dto.TutorId = tutor.Id; int id = await this.offerService.AddOffer(dto); var result = await this.userManager.AddClaimAsync(tutor, new System.Security.Claims.Claim("Creator", id.ToString())); var log = new Log { UserId = this.userManager.GetUserId(HttpContext.User), LogType = LogType.CreatedAnOffer, DateTime = DateTime.Now, ResourceId = id, ResourceType = ResourceType.Comment }; await logService.AddLog(log); //return await Task.FromResult<IActionResult>(this.RedirectToRoute("Offer/Details/" + id)); //this.TempData["Success"] = true; return(this.RedirectToAction("Details", "Offer", new { id = id })); } foreach (var error in this.ModelState.Values.SelectMany(p => p.Errors)) { this.ViewData["Error"] += error + "/n"; } CreateOfferViewModel createModel = CreateModel(); return(await Task.Run(() => this.View(createModel))); }
public async Task <string> CreateOffer(string id, CreateOfferViewModel input, ApplicationUser user) { var vehicleID = id; var vehicle = await this.vehicleRepository.AllAsNoTracking().Where(x => x.Id == vehicleID).FirstOrDefaultAsync(); var vehicleRequiredLicense = vehicle.RequiredLicenseCategory.ToString(); var userLicense = user.LicenseCategories.ToString(); var userID = user.Id; int totalDays = (input.EndDate - input.StartDate).Days; if (!(DateTime.Compare(input.StartDate, input.EndDate) < 0)) { throw new Exception("Start date must be earlier than the end date!"); } if (userLicense != vehicleRequiredLicense) { throw new Exception($"You need a valid license of type {vehicleRequiredLicense}"); } var totalPrice = totalDays * vehicle.PricePerDay; var offer = new Offer { VehicleID = vehicleID, StartDate = input.StartDate, EndDate = input.EndDate, TotalDays = totalDays, UserID = userID, IsDeleted = false, Price = totalPrice, }; await this.offerRepository.AddAsync(offer); await this.offerRepository.SaveChangesAsync(); return(offer.Id); }
public async Task <ActionResult> Create(CreateOfferViewModel model) { int currentUserId = User.Identity.GetUserId <int>(); Game game = gameService.GetGameByValue(model.Game); UserProfile user = await userProfileService.GetUserProfileByIdAsync(currentUserId); if (ModelState.IsValid && game != null && user != null) { var offer = Mapper.Map <CreateOfferViewModel, Offer>(model); offer.UserProfile = user; offer.Game = game; offerService.CreateOffer(offer); offerService.SaveOffer(); if (Request.Url != null) { offer.JobId = MarketplaceMVCHangfire.SetDeactivateOfferJob(offer.Id, Url.Action("Activate", "Offer", new { id = offer.Id }, Request.Url.Scheme), TimeSpan.FromDays(30)); } offerService.SaveOffer(); } return(View(model)); }
public void TearDown() { testModel = null; }
public async System.Threading.Tasks.Task <ActionResult> Create(CreateOfferViewModel model, HttpPostedFileBase[] images) { Tinify.Key = ConfigurationManager.AppSettings["TINYPNG_APIKEY"]; if (!ModelState.IsValid) { return(View(model)); } var currentUserId = User.Identity.GetUserId(); var userProfile = _userProfileService.GetUserProfiles(u => u.Id == currentUserId, i => i.ApplicationUser).SingleOrDefault(); if (userProfile != null) { var appUser = userProfile.ApplicationUser; if (appUser != null) { if (!(appUser.EmailConfirmed)) { return(HttpNotFound("you are not confirmed email or phone number")); } } } else { return(View("_CreateOfferConfirmationError")); } if (userProfile.Offers.Count(o => o.State == OfferState.active) >= 10) { return(View("CrateOfferLimitError")); } Offer offer = Mapper.Map <CreateOfferViewModel, Offer>(model); Game game = _gameService.GetGameByValue(model.Game); var gameFilters = _filterService.GetFilters(f => f.Game.Value == game.Value, i => i.Game, i => i.FilterItems).ToList(); var modelFilters = model.FilterValues; //var gameFilterItems = _filterItemService.GetFilterItems().Where(f => f.Filter.Game == game).ToList(); var modelFilterItems = model.FilterItemValues; if (modelFilters != null && gameFilters.Count != 0) { if (game != null && modelFilters.Length == gameFilters.Count) { for (int i = 0; i < gameFilters.Count; i++) { if (gameFilters[i].Value != modelFilters[i]) { return(View("_CreateOfferFilterError")); } bool isContainsFilterItems = false; foreach (var fItem in gameFilters[i].FilterItems) { if (fItem.Value == modelFilterItems[i]) { offer.FilterItems.Add(fItem); offer.Filters.Add(gameFilters[i]); isContainsFilterItems = true; } } if (!isContainsFilterItems) { return(View("_CreateOfferFilterError")); } } } else { return(View("_CreateOfferFilterError")); } } foreach (var image in images) { if (image != null && image.ContentLength <= 1000000 && (image.ContentType == "image/jpeg" || image.ContentType == "image/png")) { var extName = System.IO.Path.GetExtension(image.FileName); var fileName = $@"{Guid.NewGuid()}{extName}"; // сохраняем файл в папку Files в проекте string fullPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory + "\\Content\\Images\\Avatars", fileName); var urlPath = Url.Content("~/Content/Images/Screenshots/" + fileName); image.SaveAs(fullPath); offer.ScreenshotPathes.Add(new ScreenshotPath { Value = urlPath }); } else { offer.ScreenshotPathes.Add(new ScreenshotPath { Value = null }); } } offer.GameId = game.Id; offer.UserProfileId = _userProfileService.GetUserProfileById(User.Identity.GetUserId()).Id; offer.DateDeleted = offer.DateCreated.AddDays(offerDays); _offerService.CreateOffer(offer); _offerService.SaveOffer(); if (Request.Url != null) { offer.JobId = MarketHangfire.SetDeactivateOfferJob(offer.Id, Url.Action("Activate", "Offer", new { id = offer.Id }, Request.Url.Scheme), TimeSpan.FromDays(30)); } _offerService.SaveOffer(); var offerModel = Mapper.Map <Offer, OfferViewModel>(offer); return(View("OfferCreated", offerModel)); }
public IActionResult Create() { CreateOfferViewModel model = CreateModel(); return(View(model)); }
public ActionResult Create() { var model = new CreateOfferViewModel(); return(View(model)); }