Пример #1
0
        public async Task <IHttpActionResult> AddSuggestionToPlan(LocationSuggestionViewModels locationSuggestion)
        {
            try
            {
                int userId = (await CurrentUser()).Id;
                ICollection <Location> locations = new List <Location>();

                foreach (var item in locationSuggestion.LocationIds ?? new List <int>())
                {
                    var location = _locationService.Find(item);
                    if (location != null)
                    {
                        locations.Add(location);
                    }
                    else
                    {
                        return(BadRequest("Location not existed"));
                    }
                }

                var locationSuggest = new LocationSuggestion
                {
                    Comment   = locationSuggestion.Comment,
                    Locations = locations,
                    UserId    = userId,
                    PlanId    = locationSuggestion.PlanId,
                    Status    = RequestStatus.NotYet,
                    PlanDay   = locationSuggestion.PlanDay
                };
                bool result = _planService.Create(locationSuggest);

                var plan         = _planService.Find(locationSuggestion.PlanId, _ => _.Creator);
                var creatorGroup = plan.Creator;
                var content      = new
                {
                    to    = $"{creatorGroup.MobileToken}",
                    title = $"{(await CurrentUser()).FullName} muốn thêm { string.Join(", ", locations.Select(_ => _.Name)) } địa điểm vào chuyến đi {plan.Name}",
                    body  = $"{locationSuggestion.Comment}",
                    data  = new
                    {
                        type = "LocationSuggestion"
                    }
                };
                var temp = JsonConvert.SerializeObject(content);
                HttpResponseMessage responseMessage = await client.PostAsJsonAsync("/--/api/v2/push/send", content);

                if (result)
                {
                    return(Ok());
                }
                return(BadRequest());
            }
            catch (Exception ex)
            {
                _loggingService.Write(GetType().Name, nameof(AddNoteToPlan), ex);

                return(InternalServerError(ex));
            }
        }
Пример #2
0
        public async Task <IActionResult> Add(AddPlanViewModel planModel)
        {
            var user = await _userManager.GetUserAsync(User);

            ViewBag.userName = user.Name;
            if (ModelState.IsValid)
            {
                try
                {
                    var plan = new Plan
                    {
                        Created     = DateTime.Now,
                        User        = user,
                        Name        = planModel.PlanName,
                        Description = planModel.Description,
                    };
                    _planService.Create(plan);

                    return(RedirectToAction("List"));
                }
                catch
                {
                    return(View(planModel));
                }
            }
            else
            {
                return(View(planModel));
            }
        }
Пример #3
0
        public IActionResult Add(Plan plan)
        {
            if (ModelState.IsValid)
            {
                plan.UserId = userManager.GetUserId(HttpContext.User);

                planService.Create(plan);
            }

            return(RedirectToAction("List"));
        }
Пример #4
0
        public async Task <IActionResult> CreateEmployee([FromBody] PlanRequest request)
        {
            if (request == null)
            {
                return(NotFound());
            }
            var plan   = _mapper.Map <Plan>(request);
            var result = await _planService.Create(plan);

            if (result == null)
            {
                return(NotFound());
            }
            return(Ok(plan));
        }
Пример #5
0
        public void Save(PlanForDetailDto planForDetailDto)
        {
            Plan plan = planForDetailDto.Plan;

            //sauvegarde de plan et de user selected
            if (planForDetailDto.Plan.Id == 0)
            {
                _planService.Create(plan);
            }
            else
            {
                _planService.Update(plan);
            }

            _planPosteUserService.Save(plan.Id, planForDetailDto.Users.ListSelected);
            _planAccountService.Save(plan.Id, planForDetailDto.Accounts.ListSelected);
        }
Пример #6
0
        public IActionResult Create([FromBody] CreatePlan model)
        {
            var plan = _mapper.Map <Plan>(model);

            try
            {
                // create plan
                _planService.Create(plan);
                return(Ok(new
                {
                    plan.Id,
                    plan.Title,
                }));
            }
            catch (AppException ex)
            {
                // return error message if there was an cexception
                return(BadRequest(new { message = ex.Message }));
            }
        }
Пример #7
0
        //public ActionResult SavePlan()
        public ActionResult SavePlan(PlanDTO plan)
        {
            int idModule = 0;

            // List<Etage> etages = new List<Etage>();

            if (plan.id != 0)
            {
                PlanViewModel view = new PlanViewModel();

                Plan p = Mapper.Map <PlanDTO, Plan>(plan);

                //Création du nouveau plan
                Plan planReturn = new Plan();

                //Ajout des informations du plan par rapport à l'ancien
                planReturn.largeur  = p.largeur;
                planReturn.longueur = p.longueur;
                planReturn.nom      = p.nom;
                planReturn.id       = p.id;

                int largeur  = p.largeur;
                int longueur = p.longueur;

                //Création des listes de modules et étages pour le nouveau objet Plan

                List <Etage> listEtagesReturn = new List <Etage>();


                //Calcul nombre de trait dans la grille (ex: larg:3 long:7 = trait:52)
                int total = (1 + planReturn.largeur) * planReturn.longueur + (1 + planReturn.longueur) * planReturn.largeur;

                //Calcul nombre de trait horizontal
                int totalHorizontal = (1 + planReturn.largeur) * planReturn.longueur;
                //Calcul nombre de trait vertical
                int totalVerticale = (1 + planReturn.longueur) * planReturn.largeur;

                // intialisation valeur de départ
                int xGrille = 10;
                int yGrille = 10;

                int numEtage = 1;

                // boucle sur les étages du plan
                foreach (Etage etage in p.listEtages)
                {
                    //Création de l'objet Étage
                    Etage etageTemp = new Etage();
                    etageTemp.id = etage.id;
                    List <PositionModule> listPositionModuleReturn = new List <PositionModule>();
                    int taille = largeur + 1;
                    for (int i = 0; i < taille; i++)
                    {
                        for (int j = 0; j < longueur; j++)
                        {
                            PositionModule pm = new PositionModule();

                            int xAfter = xGrille + 40;
                            xGrille = xGrille + 1;

                            pm = etage.listPositionModule.FirstOrDefault(x => x.x1 == xGrille && x.x2 == xAfter && x.y1 == yGrille && x.y2 == yGrille);

                            if (pm == null)
                            {
                                pm        = new PositionModule();
                                pm.x1     = xGrille;
                                pm.x2     = xAfter;
                                pm.y1     = yGrille;
                                pm.y2     = yGrille;
                                pm.lineId = "lineLong" + i + j + numEtage;
                                pm.module = null;
                                listPositionModuleReturn.Add(pm);
                            }
                            else
                            {
                                listPositionModuleReturn.Add(pm);
                            }

                            xGrille = xAfter;
                        }
                        yGrille = yGrille + 40;
                        xGrille = 10;
                    }

                    xGrille = 10;
                    yGrille = 10;
                    taille  = longueur + 1;
                    for (int i = 0; i < taille; i++)
                    {
                        for (int j = 0; j < largeur; j++)
                        {
                            //Création de l'objet PositionModule
                            PositionModule pm = new PositionModule();

                            int yAfter = yGrille + 40;
                            yGrille = yGrille + 1;

                            pm = etage.listPositionModule.FirstOrDefault(x => x.x1 == xGrille && x.x2 == xGrille && x.y1 == yGrille && x.y2 == yAfter);

                            if (pm == null)
                            {
                                pm        = new PositionModule();
                                pm.x1     = xGrille;
                                pm.x2     = xGrille;
                                pm.y1     = yGrille;
                                pm.y2     = yAfter;
                                pm.lineId = "lineLarg" + j + i + numEtage;
                                pm.module = null;
                                listPositionModuleReturn.Add(pm);
                            }
                            else
                            {
                                //Ajout dans l'objet PositionModule dans la listPositionModule
                                listPositionModuleReturn.Add(pm);
                            }
                            yGrille = yAfter;
                        }
                        xGrille = xGrille + 40;
                        yGrille = 10;
                    }

                    numEtage++;

                    xGrille = 10;
                    yGrille = 10;

                    //Ajout de la liste des modules dans l'objet Étage
                    etageTemp.listPositionModule = listPositionModuleReturn;
                    //Ajout de l'objet Étage dans la liste des étages
                    listEtagesReturn.Add(etageTemp);
                }
                //Ajout des étages dans le plan
                planReturn.listEtages = listEtagesReturn;

                view.plan       = planReturn;
                view.lesModules = Mapper.Map <List <Module>, List <ModuleDTO> >(_moduleService.DonneTous().ToList());

                FlashMessage.Confirmation("Mise à jour réussie");

                _traceService.create(new ApplicationTrace
                {
                    action      = Parametres.Action.Modification.ToString(),
                    description = String.Format("Mise à jour du plan_id={0}", view.plan.id),
                    utilisateur = _donneNomPrenomUtilisateur()
                });

                return(PartialView("~/Areas/ServiceCommercial/Views/Maison/_AffichePlan.cshtml", view));
            }
            else
            {
                if (plan != null)
                {
                    plan.nom = "test";

                    Plan planP = new Plan();
                    planP = Mapper.Map <PlanDTO, Plan>(plan);
                    //plan = new Plan();

                    foreach (Etage e in planP.listEtages)
                    {
                        foreach (PositionModule p in e.listPositionModule)
                        {
                            idModule = p.module.id;

                            p.module = new Module();
                            p.module = _moduleService.Get(idModule);
                        }

                        idModule = 0;
                    }

                    try
                    {
                        _planService.Create(planP, _donneNomPrenomUtilisateur());
                        _planService.Save();

                        PlanViewModel view = new PlanViewModel();

                        Plan p = _planService.DonneTous().ToList().OrderByDescending(x => x.id).First();

                        //Création du nouveau plan
                        Plan planReturn = new Plan();

                        //Ajout des informations du plan par rapport à l'ancien
                        planReturn.largeur  = p.largeur;
                        planReturn.longueur = p.longueur;
                        planReturn.nom      = p.nom;
                        planReturn.id       = p.id;

                        int largeur  = p.largeur;
                        int longueur = p.longueur;

                        //Création des listes de modules et étages pour le nouveau objet Plan

                        List <Etage> listEtagesReturn = new List <Etage>();


                        //Calcul nombre de trait dans la grille (ex: larg:3 long:7 = trait:52)
                        int total = (1 + planReturn.largeur) * planReturn.longueur + (1 + planReturn.longueur) * planReturn.largeur;

                        //Calcul nombre de trait horizontal
                        int totalHorizontal = (1 + planReturn.largeur) * planReturn.longueur;
                        //Calcul nombre de trait vertical
                        int totalVerticale = (1 + planReturn.longueur) * planReturn.largeur;

                        // intialisation valeur de départ
                        int xGrille = 10;
                        int yGrille = 10;

                        int numEtage = 1;

                        // boucle sur les étages du plan
                        foreach (Etage etage in p.listEtages)
                        {
                            //Création de l'objet Étage
                            Etage etageTemp = new Etage();
                            etageTemp.id = etage.id;
                            List <PositionModule> listPositionModuleReturn = new List <PositionModule>();
                            int taille = largeur + 1;
                            for (int i = 0; i < taille; i++)
                            {
                                for (int j = 0; j < longueur; j++)
                                {
                                    PositionModule pm = new PositionModule();

                                    int xAfter = xGrille + 40;
                                    xGrille = xGrille + 1;

                                    pm = etage.listPositionModule.FirstOrDefault(x => x.x1 == xGrille && x.x2 == xAfter && x.y1 == yGrille && x.y2 == yGrille);

                                    if (pm == null)
                                    {
                                        pm        = new PositionModule();
                                        pm.x1     = xGrille;
                                        pm.x2     = xAfter;
                                        pm.y1     = yGrille;
                                        pm.y2     = yGrille;
                                        pm.lineId = "lineLong" + i + j + numEtage;
                                        pm.module = null;
                                        listPositionModuleReturn.Add(pm);
                                    }
                                    else
                                    {
                                        listPositionModuleReturn.Add(pm);
                                    }

                                    xGrille = xAfter;
                                }
                                yGrille = yGrille + 40;
                                xGrille = 10;
                            }

                            xGrille = 10;
                            yGrille = 10;
                            taille  = longueur + 1;
                            for (int i = 0; i < taille; i++)
                            {
                                for (int j = 0; j < largeur; j++)
                                {
                                    //Création de l'objet PositionModule
                                    PositionModule pm = new PositionModule();

                                    int yAfter = yGrille + 40;
                                    yGrille = yGrille + 1;

                                    pm = etage.listPositionModule.FirstOrDefault(x => x.x1 == xGrille && x.x2 == xGrille && x.y1 == yGrille && x.y2 == yAfter);

                                    if (pm == null)
                                    {
                                        pm        = new PositionModule();
                                        pm.x1     = xGrille;
                                        pm.x2     = xGrille;
                                        pm.y1     = yGrille;
                                        pm.y2     = yAfter;
                                        pm.lineId = "lineLarg" + j + i + numEtage;
                                        pm.module = null;
                                        listPositionModuleReturn.Add(pm);
                                    }
                                    else
                                    {
                                        //Ajout dans l'objet PositionModule dans la listPositionModule
                                        listPositionModuleReturn.Add(pm);
                                    }
                                    yGrille = yAfter;
                                }
                                xGrille = xGrille + 40;
                                yGrille = 10;
                            }

                            numEtage++;

                            xGrille = 10;
                            yGrille = 10;

                            //Ajout de la liste des modules dans l'objet Étage
                            etageTemp.listPositionModule = listPositionModuleReturn;
                            //Ajout de l'objet Étage dans la liste des étages
                            listEtagesReturn.Add(etageTemp);
                        }
                        //Ajout des étages dans le plan
                        planReturn.listEtages = listEtagesReturn;

                        view.plan       = planReturn;
                        view.lesModules = Mapper.Map <List <Module>, List <ModuleDTO> >(_moduleService.DonneTous().ToList());

                        FlashMessage.Confirmation("Sauvegarde réussie");
                        _traceService.create(new ApplicationTrace
                        {
                            action      = Parametres.Action.Creation.ToString(),
                            description = String.Format("Création du plan_id={0}", view.plan.id),
                            utilisateur = _donneNomPrenomUtilisateur()
                        });
                        return(PartialView("~/Areas/ServiceCommercial/Views/Maison/_AffichePlan.cshtml", view));
                    }
                    catch (Exception e)
                    {
                        throw (e);
                    }

                    return(Json("Success"));
                }
                else
                {
                    //return RedirectToAction("Index");
                    return(Json("An Error Has occoured"));
                }
            }

            return(Json("Success"));
        }