// GET: Friends/Add
        public ActionResult Add(int?message)
        {
            FriendAddViewModel viewModel = new FriendAddViewModel();

            ViewBag.IntellisenseScript = GoogleMapsAPI.getIntellisenseScriptURL();

            if (message != null)
            {
                // safeguard range
                int index = message >= messages.Length || message < 0 ? messages.Length - 1 : (int)message;
                viewModel.message = messages[index];
            }

            return(View(viewModel));
        }
        public ActionResult Add(FriendAddViewModel viewModel)
        {
            GoogleMapsAPI maps = GoogleMapsAPI.getInstance();

            string[] location = maps.getAddressInfoByStreet(viewModel.friend.street);

            if (maps.statusCode == GoogleMapsAPI.RESPONSE_OK)
            {
                // grab the latitude and longitude and store them
                viewModel.friend.latitude     = location[0];
                viewModel.friend.longitude    = location[1];
                viewModel.friend.full_address = location[2];

                // check if the friend already exists
                var check = (from friendList in db.friends
                             where friendList.full_address == viewModel.friend.full_address &&
                             friendList.name == viewModel.friend.name
                             select friendList).FirstOrDefault();

                if (check != null)
                {
                    return(RedirectToAction("Add", new { message = 0 }));
                }

                db.friends.Add((Friend)viewModel.friend);
                db.SaveChanges();
            }
            else if (maps.statusCode == GoogleMapsAPI.RESPONSE_NOT_FOUND)
            {
                return(RedirectToAction("Add", new { message = 1 }));
            }
            else
            {
                return(RedirectToAction("Add", new { message = 2 }));
            }

            return(RedirectToAction("Index"));
        }