Package com.softserve.academy.food.controllers

Source Code of com.softserve.academy.food.controllers.ViewController

package com.softserve.academy.food.controllers;

import java.util.ArrayList;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.softserve.academy.food.model.mDish;
import com.softserve.academy.food.model.mUserCredentials;
import com.softserve.academy.food.model.mUserInfo;
import com.softserve.academy.food.services.iHistoryOrder;
import com.softserve.academy.food.services.iUserService;
import com.softserve.academy.food.services.iViewDish;
import com.softserve.academy.food.services.supplement.Convector;


@Controller
@RequestMapping( value="/index" )
public class ViewController 
{
  @Autowired
  private iUserService uService;
  @Autowired
  private iViewDish dService;
  @Autowired
  private iHistoryOrder hService;
 
  private ModelAndView model;
 
  @SuppressWarnings("unchecked")
  @RequestMapping( method = RequestMethod.GET )
  public ModelAndView mainView( HttpSession session )
  { 
    if ( dService.getDishs().isEmpty() )
    {
      dService.setAll();
    }
   
    model = new ModelAndView("index");
    model.addObject("listdishs", dService.getDishs());
   
    if ( session.getAttribute("baskedIdList")!=null )
    {
      model.addObject( "baskedNameList", (ArrayList<String>)session.getAttribute("baskedNameList") );
      model.addObject( "baskedSumm", (Float)session.getAttribute("baskedSumm") );
    }
    else
    {
      session.setAttribute( "baskedNameList", new  ArrayList<String>() );
      session.setAttribute( "baskedSumm", new Float(0) );
      session.setAttribute( "baskedIdList", new ArrayList<Integer>() );
    }
   
    return model;
  }
 
  @RequestMapping( params={"action=registration"}, method = RequestMethod.GET )
  public ModelAndView registrationView()
  {
    model = new ModelAndView("index");
    model.addObject( "listdishs", dService.getDishs() );
    model.addObject( "user", new mUserCredentials() );
   
    return model;
  }
 
  @SuppressWarnings("unchecked")
  @RequestMapping( params={"action=commit"}, method = RequestMethod.GET )
  public ModelAndView comitView( HttpSession session )
  {
    float summ=0;
    model = new ModelAndView("index");
   
    ArrayList<Integer> baskedIdList = (ArrayList<Integer>)session.getAttribute( "baskedIdList" );
    ArrayList<mDish> listdishs = dService.getDishesByIds( baskedIdList );
   
    model.addObject( "listdishs", dService.getDishs() );
    model.addObject( "baskedDish", listdishs );
   
    for ( mDish dish : listdishs )
    {
      summ+=dish.getPrice();
    }
   
    model.addObject( "baskedSummPrice",  summ );

    return model;
  }
 
  @RequestMapping( params={"action=registration"}, method = RequestMethod.POST )
  public ModelAndView dataReques( @ModelAttribute("User") mUserCredentials user )
  {
    if ( uService.checkUser(user.getLogin()) )
    {
      model = new ModelAndView("index");
      model.addObject("listdishs", dService.getDishs());
      model.addObject("user", new mUserCredentials());
      model.addObject("checkLogin", "Логин занят");
      return model;
    }
   
    uService.addUser( user );
   
    model = new ModelAndView( "redirect:/index.htm?action=registred" );
    model.addObject( "listdishs", dService.getDishs() );
    model.addObject( "user", user );
   
    return model;
  }
 
  @RequestMapping( params={"action=setdishtype"}, method = RequestMethod.POST )
  public String setDishType( HttpServletRequest request )
  {
    dService.setType( Convector.StringToInt( request.getParameter("idtype") ) );
   
    return "redirect:/index.htm";
  }
 
  @RequestMapping( params={"action=viewuserinfo"}, method = RequestMethod.POST )
  public ModelAndView viewUserInfo( @ModelAttribute("mUserinfo") mUserInfo user )
  {
    model = new ModelAndView("index");
    model.addObject("listdishs", dService.getDishs());
   
    if (!getLogin().equals("guest"))
    { 
      model.addObject("userinfo", uService.getUser( getLogin() ));
     
      if ( user!=null & user.getId()>0 )
      {
        uService.updateUser( user );
      }
    }
   
    return model;
  }

  @RequestMapping( params={"action=viewhistory"}, method = RequestMethod.POST )
  public ModelAndView viewUserHistory()
  {
    model = new ModelAndView("index");
    model.addObject("listdishs", dService.getDishs());
   
    if (!getLogin().equals("guest"))
    {
      model.addObject("historylist", hService.getHistory( getLogin() ));
    }
   
    return model;
  }
 
  private String getLogin()
  {
    String login;
    Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    if ( principal instanceof UserDetails )
    {
      login = ( (UserDetails)principal ).getUsername();
    }
    else
    {
      login = principal.toString();
    }
    return login;
  }
}
TOP

Related Classes of com.softserve.academy.food.controllers.ViewController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.