public ActionResult View(int id)
        {
            PolicyMessageGroupItemHotel policyMessageGroupItemHotel = new PolicyMessageGroupItemHotel();

            policyMessageGroupItemHotel = policyMessageGroupItemHotelRepository.GetPolicyMessageGroupItemHotel(id);;

            //Check Exists
            if (policyMessageGroupItemHotel == null)
            {
                ViewData["ActionMethod"] = "EditGet";
                return(View("RecordDoesNotExistError"));
            }

            PolicyGroup policyGroup = new PolicyGroup();

            policyGroup = policyGroupRepository.GetGroup(policyMessageGroupItemHotel.PolicyGroupId);

            PolicyMessageGroupItemHotelVM policyMessageGroupItemHotelVM = new PolicyMessageGroupItemHotelVM();

            policyMessageGroupItemHotelVM.PolicyGroupName             = policyGroup.PolicyGroupName;
            policyMessageGroupItemHotelVM.PolicyGroupId               = policyGroup.PolicyGroupId;
            policyMessageGroupItemHotelVM.PolicyMessageGroupItemHotel = policyMessageGroupItemHotel;

            //Populate List of PolicyLocations
            PolicyLocationRepository policyLocationRepository = new PolicyLocationRepository();
            SelectList policyLocations = new SelectList(policyLocationRepository.GetAllPolicyLocations().ToList(), "PolicyLocationId", "PolicyLocationName", policyMessageGroupItemHotel.PolicyLocationId);

            policyMessageGroupItemHotelVM.PolicyLocations = policyLocations;

            return(View(policyMessageGroupItemHotelVM));
        }
        public ActionResult Create(PolicyMessageGroupItemHotelVM policyMessageGroupItemHotelVM)
        {
            int policyGroupId = policyMessageGroupItemHotelVM.PolicyMessageGroupItemHotel.PolicyGroupId;

            PolicyGroup policyGroup = new PolicyGroup();

            policyGroup = policyGroupRepository.GetGroup(policyGroupId);;

            //Check Exists
            if (policyGroup == null)
            {
                ViewData["ActionMethod"] = "CreatePost";
                return(View("RecordDoesNotExistError"));
            }

            //Check AccessRights
            RolesRepository rolesRepository = new RolesRepository();

            if (!rolesRepository.HasWriteAccessToPolicyGroupMessages(policyGroupId))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            //Update Model from Form
            try
            {
                UpdateModel <PolicyMessageGroupItemHotel>(policyMessageGroupItemHotelVM.PolicyMessageGroupItemHotel, "PolicyMessageGroupItemHotel");
            }
            catch
            {
                string n = "";
                foreach (ModelState modelState in ViewData.ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        n += error.ErrorMessage;
                    }
                }
                ViewData["Message"] = "ValidationError : " + n;
                return(View("Error"));
            }
            try
            {
                policyMessageGroupItemHotelRepository.Add(policyMessageGroupItemHotelVM.PolicyMessageGroupItemHotel);
            }
            catch (SqlException ex)
            {
                LogRepository logRepository = new LogRepository();
                logRepository.LogError(ex.Message);

                ViewData["Message"] = "There was a problem with your request, please see the log file or contact an administrator for details";
                return(View("Error"));
            }


            return(RedirectToAction("List", "PolicyMessageGroupItem", new { id = policyGroupId }));
        }
        public ActionResult Create(int id)
        {
            PolicyGroup policyGroup = new PolicyGroup();

            policyGroup = policyGroupRepository.GetGroup(id);;

            //Check Exists
            if (policyGroup == null)
            {
                ViewData["ActionMethod"] = "CreateGet";
                return(View("RecordDoesNotExistError"));
            }

            RolesRepository rolesRepository = new RolesRepository();

            if (!rolesRepository.HasWriteAccessToPolicyGroupMessages(id))
            {
                ViewData["Message"] = "You do not have access to this item";
                return(View("Error"));
            }

            PolicyMessageGroupItemHotelVM policyMessageGroupItemHotelVM = new PolicyMessageGroupItemHotelVM();

            policyMessageGroupItemHotelVM.PolicyGroupName = policyGroup.PolicyGroupName;
            policyMessageGroupItemHotelVM.PolicyGroupId   = policyGroup.PolicyGroupId;

            PolicyMessageGroupItemHotel policyMessageGroupItemHotel = new PolicyMessageGroupItemHotel();

            policyMessageGroupItemHotel.ProductId     = 2; //Hotel
            policyMessageGroupItemHotel.PolicyGroupId = policyGroup.PolicyGroupId;
            policyMessageGroupItemHotelVM.PolicyMessageGroupItemHotel = policyMessageGroupItemHotel;

            //Populate List of PolicyLocations
            PolicyLocationRepository policyLocationRepository = new PolicyLocationRepository();
            SelectList policyLocations = new SelectList(policyLocationRepository.GetAllPolicyLocations().ToList(), "PolicyLocationId", "PolicyLocationName");

            policyMessageGroupItemHotelVM.PolicyLocations = policyLocations;

            return(View(policyMessageGroupItemHotelVM));
        }