Ejemplo n.º 1
0
        // GET: ProExp/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ProExpModel proExpModel = await _proExpService.GetProExpByIdAsync(id.Value);

            if (proExpModel == null)
            {
                return(HttpNotFound());
            }

            var deleteVm = new DeleteProExpViewModel
            {
                FromDate          = proExpModel.FromDate,
                ToDate            = proExpModel.ToDate,
                CityName          = proExpModel.CityName,
                CompanyName       = proExpModel.CompanyName,
                ProfileTechModels = new List <ProfileTechModel>(await _proExpService.GetAllTechnoFrom(proExpModel))
            };

            return(View(deleteVm));
        }
Ejemplo n.º 2
0
        // GET: ProExp/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            ProExpModel proExpModel = await _proExpService.GetProExpByIdAsync(id.Value);

            if (proExpModel == null)
            {
                return(HttpNotFound());
            }

            var detailVm = new DetailsProExpViewModel
            {
                CityName          = proExpModel.CityName,
                CompanyName       = proExpModel.CompanyName,
                FromDate          = proExpModel.FromDate,
                ToDate            = proExpModel.ToDate,
                ProfileTechModels = new List <ProfileTechModel>(await _proExpService.GetAllTechnoFrom(proExpModel)),
            };

            if (proExpModel.ExperienceDescriptionModel != null &&
                proExpModel.ExperienceDescriptionModel.Count > 0)
            {
                detailVm.ExperienceDescriptionModel = proExpModel.ExperienceDescriptionModel[0];
            }

            return(View(detailVm));
        }
Ejemplo n.º 3
0
        public async Task <ActionResult> Create(
            [Bind(Include = "CompanyName, CityName, FromDate, ToDate, ProExpDescription, ProExpName, ProExpPosition")] CreateProExpViewModel proExpViewModel)
        {
            if (ModelState.IsValid)
            {
                var proExpToAdd = new ProExpModel
                {
                    CompanyName = proExpViewModel.CompanyName,
                    CityName    = proExpViewModel.CityName,
                    FromDate    = proExpViewModel.FromDate,
                    ToDate      = proExpViewModel.ToDate,
                    ProfileId   = _userModel.Id,
                    ExperienceDescriptionModel = new List <ExperienceDescriptionModel>()
                };

                var expProDesc = new ExperienceDescriptionModel
                {
                    Description  = proExpViewModel.ProExpDescription,
                    PositionDesc = proExpViewModel.ProExpPosition,
                    Name         = proExpViewModel.ProExpName
                };

                proExpToAdd.ExperienceDescriptionModel.Add(expProDesc);


                await _proExpService.CreateAsync(proExpToAdd);

                return(RedirectToAction("Index"));
            }

            return(View(proExpViewModel));
        }
Ejemplo n.º 4
0
 public async Task <IEnumerable <ProfileTechModel> > GetAllTechnoFrom(ProExpModel proExpModel)
 {
     return(await _dbContext.ProExps
            .Where(x => x.Id == proExpModel.Id)
            .SelectMany(x => x.Technologies).Join(
                _dbContext.ProfileTechnologies,
                techFromProExp => techFromProExp.Id,
                profileTech => profileTech.TechnologyId,
                (proExpTech, profileTech) => new ProfileTechModel()
     {
         TechnologyName = proExpTech.Title,
         TechLevelId = profileTech.TechLevelId,
         TechLevelDescription = profileTech.TechLevel.Description,
         ProfileId = profileTech.ProfileId,
         TechnologyId = profileTech.TechnologyId
     })
            .ToListAsync());
 }
Ejemplo n.º 5
0
        public async Task <int> CreateAsync(ProExpModel proExpModel)
        {
            ProExp entity = new ProExp
            {
                ProfileId              = proExpModel.ProfileId,
                FromDate               = proExpModel.FromDate,
                ToDate                 = proExpModel.ToDate,
                City                   = await GetOrCreateCityAsync(proExpModel.CityName),
                Company                = await GetOrCreateCompanyAsync(proExpModel.CompanyName),
                Technologies           = await GetOrCreateTechnoloyAsync(proExpModel.TechnologyModels, proExpModel.ProfileId),
                ExperienceDescriptions = await CreateOrUpdateExpDescAsync(proExpModel.ExperienceDescriptionModel)
            };

            _dbContext.ProExps.Add(entity);
            await _dbContext.SaveChangesAsync();

            return(entity.Id);
        }
Ejemplo n.º 6
0
        public async Task <ActionResult> Edit([Bind(Include = "CompanyName, CityName, FromDate, ToDate")] EditProExpViewModel proExpViewModel)
        {
            if (ModelState.IsValid)
            {
                var proExpEdited = new ProExpModel
                {
                    Id          = proExpViewModel.Id,
                    CityName    = proExpViewModel.CityName,
                    CompanyName = proExpViewModel.CompanyName,
                    FromDate    = proExpViewModel.FromDate,
                    ToDate      = proExpViewModel.ToDate
                };

                await _proExpService.UpdateAsync(proExpEdited.Id, proExpEdited);

                return(RedirectToAction("Index"));
            }
            return(View(proExpViewModel));
        }
Ejemplo n.º 7
0
        public async Task <ActionResult> Create([Bind(Include = "CompanyName, CityName, FromDate, ToDate")] CreateProExpViewModel proExpViewModel)
        {
            if (ModelState.IsValid)
            {
                var proExpToAdd = new ProExpModel
                {
                    CompanyName = proExpViewModel.CompanyName,
                    CityName    = proExpViewModel.CityName,
                    FromDate    = proExpViewModel.FromDate,
                    ToDate      = proExpViewModel.ToDate,
                    ProfileId   = _userModel.Id
                };

                await _proExpService.CreateAsync(proExpToAdd);

                return(RedirectToAction("Index"));
            }

            return(View(proExpViewModel));
        }
Ejemplo n.º 8
0
        public async Task <ProExpModel> GetProExpByIdAsync(int id)
        {
            ProExpModel toReturn =
                await _dbContext.ProExps
                .Where(x => x.Id == id)
                .Select(x => new ProExpModel
            {
                Id          = id,
                CompanyName = x.Company.Name,
                CityName    = x.City.Name,
                FromDate    = x.FromDate,
                ToDate      = x.ToDate
            })
                .SingleOrDefaultAsync();

            if (toReturn != null)
            {
                toReturn.ExperienceDescriptionModel = await GetExpDescriptionByProExpId(id);
            }

            return(toReturn);
        }
Ejemplo n.º 9
0
        // Conservation d'un seul service qui s'occupe de l'expérience professionnel et qui ajoute des données dans différentes tables.
        // TODO voir pour refacto ces deux fonctions assez similaires
        public async Task <int> CreateAsync(ProExpModel proExpModel)
        {
            ProExp entity = new ProExp
            {
                ProfileId = proExpModel.ProfileId,
                FromDate  = proExpModel.FromDate,
                ToDate    = proExpModel.ToDate
            };

            using (ApplicationContext context = new ApplicationContext())
            {
                // CITY PART
                var city = await context.Cities
                           .FirstOrDefaultAsync(x => x.Name == proExpModel.CityName);

                if (city == null)
                {
                    city = new City
                    {
                        Name = proExpModel.CityName
                    };
                }

                entity.City = city;

                // COMPANY PART
                var company = await context.Companies
                              .FirstOrDefaultAsync(x => x.Name == proExpModel.CompanyName);

                if (company == null)
                {
                    company = new Company
                    {
                        Name = proExpModel.CompanyName
                    };
                }

                entity.Company = company;

                // TECHNOLOGY PART
                if (proExpModel.TechnologyModels != null &&
                    proExpModel.TechnologyModels.Count > 0)
                {
                    foreach (var technologyModel in proExpModel.TechnologyModels)
                    {
                        Technology technology = await context.Technologies.FirstOrDefaultAsync(x => x.Title == technologyModel.Title);

                        if (technology == null)
                        {
                            technology = new Technology
                            {
                                Title = technologyModel.Title
                            };
                        }

                        entity.Technologies.Add(technology);

                        context.ProfileTechnologies.AddOrUpdate(new ProfileTechnology
                        {
                            ProfileId   = proExpModel.ProfileId,
                            TechLevelId = technologyModel.TechLevelId,
                            Technology  = technology
                        });
                    }
                }

                context.ProExps.Add(entity);
                await context.SaveChangesAsync();
            }

            // Description Part with other Service

            var description = proExpModel.ExperienceDescriptionModel;

            if (description != null)
            {
                description.ProExpId = entity.Id;
                await _expDescriptionService.CreateAsync(description);
            }

            return(entity.Id);
        }