public ActionResult Create(SermonMetaDataCreateViewModel sermonMetaDataCreateViewModel)
        {
            if (ModelState.IsValid)
            {
                SermonData newSermonData = new SermonData();
                newSermonData.SermonDataID = Guid.NewGuid();
                newSermonData.Active = true;
                //newSermonData.SermonDataDataTypesID = 1;
                sermonMetaDataCreateViewModel.SermonMetaData.SermonDatas.Add(newSermonData);

                int[] selectedCategories = sermonMetaDataCreateViewModel.SermonCategoryies.Where(x => x.Selected).Select<SelectListItem, int>(x => Convert.ToInt32(x.Value.ToString())).ToArray<int>();
                sermonMetaDataCreateViewModel.SermonMetaData.SermonCategories.Clear();
                sermonMetaDataCreateViewModel.SermonMetaData.SermonCategories = unitOfWork.SermonCategoryRepository.Get(x => selectedCategories.Contains(x.SermonCategoryID)).ToList();

                unitOfWork.SermonMetaDataRepository.Insert(sermonMetaDataCreateViewModel.SermonMetaData);
                unitOfWork.Save();

                foreach (var sermonMetaData in sermonMetaDataCreateViewModel.SermonMetaData.SermonDatas)
                {
                    var path = Path.Combine(unitOfWork.SermonConfigRepository.SermonDataPath, Path.GetFileName(sermonMetaData.SermonDataID.ToString("D").ToUpperInvariant() + Path.GetExtension(sermonMetaDataCreateViewModel.SermonAudioFile.FileName)));
                    sermonMetaDataCreateViewModel.SermonAudioFile.SaveAs(path);
                }

                return RedirectToAction("Index");
            }

            //sermonMetaDataCreateViewModel.SermonMetaData = SermonMetaDataSetupBase(sermonMetaDataCreateViewModel.SermonMetaData);
            sermonMetaDataCreateViewModel = SermonMetaDataBaseInitialize(sermonMetaDataCreateViewModel.SermonMetaData).ToCreateViewModel();
            return View(sermonMetaDataCreateViewModel);
        }
        public ActionResult Edit(SermonMetaDataEditViewModel sermonMetaDataEditViewModel)
        {
            if (ModelState.IsValid)
            {
                unitOfWork.context.SermonMetaDatas.Attach(sermonMetaDataEditViewModel.SermonMetaData);
                unitOfWork.context.Entry(sermonMetaDataEditViewModel.SermonMetaData).Collection(x => x.SermonCategories).Load();
                
                if (sermonMetaDataEditViewModel.SermonAudioFile != null && sermonMetaDataEditViewModel.SermonAudioFile.ContentLength > 0)
                {
                    SermonData newSermonData = new SermonData();
                    newSermonData.SermonDataID = Guid.NewGuid();
                    newSermonData.Active = true;
                    sermonMetaDataEditViewModel.SermonMetaData.SermonDatas.Add(newSermonData);

                    var path = Path.Combine(unitOfWork.SermonConfigRepository.SermonDataPath, Path.GetFileName(newSermonData.SermonDataID.ToString("D").ToUpperInvariant() + Path.GetExtension(sermonMetaDataEditViewModel.SermonAudioFile.FileName)));
                    sermonMetaDataEditViewModel.SermonAudioFile.SaveAs(path);
                }

                int[] selectedCategories = sermonMetaDataEditViewModel.SermonCategoryies.Where(x => x.Selected).Select<SelectListItem, int>(x => Convert.ToInt32(x.Value.ToString())).ToArray<int>();

                sermonMetaDataEditViewModel.SermonMetaData.SermonCategories.Clear();
                sermonMetaDataEditViewModel.SermonMetaData.SermonCategories = unitOfWork.SermonCategoryRepository.Get(x => selectedCategories.Contains(x.SermonCategoryID)).ToList();

                unitOfWork.SermonMetaDataRepository.Update(sermonMetaDataEditViewModel.SermonMetaData);
                unitOfWork.Save();
                return RedirectToAction("Index");
            }
            //sermonMetaDataEditViewModel.SermonMetaData = SermonMetaDataSetupBase(sermonMetaDataEditViewModel.SermonMetaData);
            sermonMetaDataEditViewModel = SermonMetaDataBaseInitialize(sermonMetaDataEditViewModel.SermonMetaData).ToEditViewModel();
            return View(sermonMetaDataEditViewModel);
        }
        public void AddNewSermon(int sermonMetaDataID)
        {
            SermonMetaData sermonMetaData = unitOfWork.SermonMetaDataRepository.GetByID(sermonMetaDataID);
            SermonData sermonData = new SermonData();

            SermonData newSermonData = new SermonData();
            newSermonData.SermonDataID = Guid.NewGuid();
            newSermonData.Active = true;
            //newSermonData.SermonDataDataTypesID = 1;

        }