コード例 #1
0
        public ActionResult Add(Models.Announcement.AddViewModel model, IFormFile ImageFilePath)
        {
            //image ekleme için faydalanılan link -> https://www.webtrainingroom.com/aspnetcore/file-upload
            model.ImageFilePath = ImageFilePath;
            if (ImageFilePath != null)
            {
                string imageFileName = ImageFilePath.FileName;
                model.ImageInformation = ConvertIFormFileToImageInformation(ImageFilePath);
                SessionHelper.SetObject(model.SessionGuid, model.ImageInformation);
            }
            var sessionImage = SessionHelper.GetObject <ImageInformation>(model.SessionGuid);

            if (sessionImage != null)
            {
                model.SessionImageFileName = sessionImage.FileName;
                if (ImageFilePath == null)
                {
                    model.ImageInformation = sessionImage;
                }
            }

            if (!ModelState.IsValid)
            {
                //select lists
                model.BroadcastTypeSelectList = GetBroadcastTypeSelectList(SessionHelper.CurrentUser.UserToken, SessionHelper.CurrentLanguageTwoChar);
                model.DisplayLanguage         = SessionHelper.CurrentLanguageTwoChar;
                return(View(model));
            }

            //başlıklardan en az birinin girilmesi istenmektedir. Bunun kontrolu işlevidir.
            if (string.IsNullOrEmpty(model.TitleTR) && string.IsNullOrEmpty(model.TitleEN))
            {
                model.BroadcastTypeSelectList = GetBroadcastTypeSelectList(SessionHelper.CurrentUser.UserToken, SessionHelper.CurrentLanguageTwoChar);
                model.DisplayLanguage         = SessionHelper.CurrentLanguageTwoChar;
                ViewBag.ErrorMessage          = "Title TR Or Title EN Is Required";
                return(View(model));
            }


            Business.Models.Broadcast.AddBroadcastWithDetail broadcastWithDetail = new Business.Models.Broadcast.AddBroadcastWithDetail();
            broadcastWithDetail.BroadcastTypeId       = BroadcastTypeStatic.Announcement;
            broadcastWithDetail.ImageInformation      = model.ImageInformation;
            broadcastWithDetail.TitleTR               = model.TitleTR;
            broadcastWithDetail.TitleEN               = model.TitleEN;
            broadcastWithDetail.DescriptionTR         = model.DescriptionTR;
            broadcastWithDetail.DescriptionEN         = model.DescriptionEN;
            broadcastWithDetail.VideoFileUrl          = model.VideoFileUrl;
            broadcastWithDetail.ValidationEndDateTime = model.ValidationEndDateTime;
            broadcastWithDetail.IsActive              = model.IsActive;

            var apiResponseModel = _broadcastService.AddWithDetail(SessionHelper.CurrentUser.UserToken, SessionHelper.CurrentLanguageTwoChar, broadcastWithDetail);

            if (apiResponseModel.ResultStatusCode == ResultStatusCodeStatic.Success)
            {
                SessionHelper.SetObject(model.SessionGuid, null);
                if (SessionHelper.CheckAuthForCurrentUser(AuthCodeStatic.PAGE_ANNOUNCEMENT_LIST))
                {
                    return(RedirectToAction(nameof(AnnouncementController.List), "Announcement"));
                }
                return(RedirectToAction(nameof(HomeController.Index), "Home")); //todo: şimdilik bu sekilde ayarlandı.
            }
            else
            {
                ViewBag.ErrorMessage     = apiResponseModel.ResultStatusMessage != null ? apiResponseModel.ResultStatusMessage : "Kaydedilemedi.";//todo: kulturel olacak NotSaved
                ViewBag.ErrorMessageList = apiResponseModel.ErrorMessageList;
                // todo: select lists
                model.BroadcastTypeSelectList = GetBroadcastTypeSelectList(SessionHelper.CurrentUser.UserToken, SessionHelper.CurrentLanguageTwoChar);
                return(View(model));
            }
        }