示例#1
0
        public static async Task DownloadCompleted(string fullPath)
        {
            var data = ParseLocalVideoPath(fullPath);

            if (data != null)
            {
                data = ObjectCacher.DownloadingFiles.ContainsKey(data.VideoId)
                    ? ObjectCacher.DownloadingFiles[data.VideoId]
                    : data;
                if (ObjectCacher.DownloadingFiles.ContainsKey(data.VideoId))
                {
                    ObjectCacher.DownloadingFiles.Remove(data.VideoId);
                }
                var category = ControllerRepository.Db(x => x.GetVideoCategory(UserData.CurrentUser.EntityId.Value, data.category_Id)).FirstOrDefault();
                if (category != null)
                {
                    category.Videos = new List <VideoData>();
                    category.Videos.Add(new VideoData
                    {
                        Video_Id    = data.VideoId,
                        Title       = data.Title,
                        ThumpUrl    = data.ThumpUrl,
                        Quality     = data.Quality,
                        Duration    = data.Duration,
                        Description = data.Description,
                        Auther      = data.Auther,
                        Resolution  = data.Resolution
                    });
                    /// Save the changes to DownloadCoins, that has been made in FileService
                    await UserData.SaveUserChanges();

                    await UserData.SaveCategory(category);
                }
            }
        }
 public SimpleRepositoryService()
 {
     this.gatewayRepository        = new GatewayRepository();
     this.controllerRepository     = new ControllerRepository();
     this.dummyWebService          = new ExternalServiceMock();
     this.controllerTypeRepository = new ControllerTypeRepository();
 }
示例#3
0
        protected void AddUserController_Click(object sender, EventArgs e)
        {
            ControllerRepository conUserReb = new ControllerRepository();

            conUserReb.AddUserController(Convert.ToInt32(ddlUsers.SelectedValue), Convert.ToInt32(txtCotrollerId.Text));
            BindRepeater();
        }
示例#4
0
        /// <summary>
        /// Reward the user after watching an ads
        /// </summary>
        public static void Reward()
        {
            var amount = decimal.Parse(ControllerRepository.Db(x => x.GetSetting("VideoRewardAmount")).Value);

            UserData.CurrentUser.DownloadCoins += amount;
            UserData.SaveUserChanges();
        }
示例#5
0
        private void _btnDislike_Clicked(object sender, EventArgs e)
        {
            var item = (sender as ImageButton).BindingContext as VideoCategoryView;

            ControllerRepository.Db(x => x.Vote(VideoSearchType.PlayList, Ratingtype.Down, item.EntityId.Value, UserData.CurrentUser.EntityId.Value)).Await();
            DataBinder();
        }
示例#6
0
 /// <summary>
 /// Load Application Settings from the db
 /// </summary>
 /// <param name="mainActivity"></param>
 public static void LoadApplicationSettings(IMainActivity mainActivity)
 {
     mainActivity.YDeveloperKey     = ControllerRepository.Db(x => x.GetSetting("YoutubeDeveloperKey")).Value;
     mainActivity.AdsApplicationIds = ControllerRepository.Db(x => x.GetSetting("AdsApplicationIds")).Value;
     mainActivity.BannerAdd         = ControllerRepository.Db(x => x.GetSetting("BannerAdd")).Value;
     mainActivity.RewardAddId       = ControllerRepository.Db(x => x.GetSetting("RewardAddId")).Value;
 }
示例#7
0
        public async Task DataBinder(MethodInformation method = null)
        {
            if (!this.UserIsLogedIn())
            {
                return;
            }


            var l = await this.StartLoading();

            myPlaylist.ItemsSource              = UserData.VideoCategoryViews;
            myPlaylist.Header.IsVisible         = myPlaylist.HasItems;
            playListSuggesting.ItemsSource      = ControllerRepository.Db(x => x.GetUserSuggestion(UserData.CurrentUser.EntityId.Value));
            playListSuggesting.Header.IsVisible = playListSuggesting.HasItems;
            playListUserSeach.ItemsSource       = ControllerRepository.Y(x => x.SearchAsync(UserData.CurrentUser.EntityId.Value, "", 10, 1, null, VideoSearchType.Recommendation)).Await()?.ToItemList();
            playListUserSeach.Header.IsVisible  = playListUserSeach.HasItems;
            //adsBanner.IsVisible = UserData.CurrentUser.UserType != UserType.Premium;
            l.EndLoading();

            if (!myPlaylist.HasItems && !UserData.Notified)
            {
                UserData.Notified = true;
                var config = new ToastConfig("BackgroundModeMessage".GetString())
                             .SetDuration(TimeSpan.FromSeconds(8))
                             .SetMessageTextColor(Color.Red)
                             .SetBackgroundColor(Color.WhiteSmoke)
                             .SetPosition(ToastPosition.Bottom);
                UserDialogs.Instance.Toast(config);
            }
            // start the ads
            //await Methods.ReguastNewAdd?.Invoke();
        }
示例#8
0
        public Video LoadData()
        {
            if (!_video.IsVideo)
            {
                var title = _video.Title;
                _video.LoadVideos();
                if (!_video.Videos.Any())
                {
                    return(this);
                }

                var v = _video.Videos.FirstOrDefault(x => x.IsVideo);

                v.Videos      = _video.Videos;
                _video        = v;
                PlayListTitle = title;
                LoadlstPlayListVideos();
            }
            else
            {
                var index = searchedVideos.FindIndex(x => x.Id == _video.Id);
                searchedVideos = ControllerRepository.Y(x => x.SearchAsync(UserData.CurrentUser.EntityId.Value, "", 30, 1, _video.Title, VideoSearchType.Mix)).Await().ToItemList(); // get relevant Videos
                searchedVideos.RemoveAll(x => x.Id == _video.Id);
                searchedVideos.Insert(0, _video);
                LoadlstVideos();
            }

            return(this);
        }
示例#9
0
        private static int DeleteRecordsByController(Controller controller)
        {
            int ret = 0;

            using (TransactionalDbClient tc = ionixFactory.CreateTransactionalDbClient())
            {
                ControllerRepository        controllerRepository = new ControllerRepository(tc.Cmd);
                ActionRepository            actionRepository     = new ActionRepository(tc.Cmd);
                List <Server.Models.Action> controllerActions    = actionRepository.SelectByControllerId(controller.Id).ToList();

                if (!controllerActions.IsEmptyList())
                {
                    List <int> controllerActionIds = new List <int>(controllerActions.Count);
                    controllerActions.ForEach((aa) => controllerActionIds.Add(aa.Id));

                    //RoleControllerAction Siliniyor.
                    RoleActionRepository roleControllerActionRepository = new RoleActionRepository(tc.Cmd);
                    ret += roleControllerActionRepository.DeleteByControllerActionIds(controllerActionIds);

                    //controllerAction Siliniyor.
                    ret += actionRepository.DeleteByControllerId(controller.Id);
                }
                //controller Siliniyor.
                ret += controllerRepository.Delete(controller);

                tc.Commit();
            }

            return(ret);
        }
示例#10
0
        private async void _txtSearch_QuerySubmitted(object sender, AutoSuggestBoxQuerySubmittedEventArgs e)
        {
            if (!await Methods.AppSettings.ValidateStoragePermission() || string.IsNullOrEmpty(_txtSearch.Text))
            {
                return;
            }

            var text = _txtSearch.Text;

            if (e?.ChosenSuggestion != null)
            {
                text = e.ChosenSuggestion.ToString();
            }

            if (string.IsNullOrWhiteSpace(text))
            {
                return;
            }

            var l = await this.StartLoading();

            var videos = ControllerRepository.Y(x => x.SearchAsync(UserData.CurrentUser.EntityId.Value, text, 6, 1, null, VideoSearchType.All)).Await();
            var src    = new SearchView(videos, _txtSearch.Text);

            src.Open();
            l.EndLoading();
        }
示例#11
0
        public Video(VideoWrapper video, List <VideoWrapper> allCollection)
        {
            InitializeComponent();
            _video         = video;
            searchedVideos = allCollection;
            screanHeight   = Height;

            yVideo.OnFullScrean = b =>
            {
                expandableView.IsVisible         = !b && PageO != PageOrientation.Horizontal;
                expandableViewPlayList.IsVisible = _video.HasVideos && !b && PageO != PageOrientation.Horizontal;
            };

            yVideo.OnVideoStarted = v =>
            {
                if (_video.HasVideos && lstPlayListVidos != null && (lstPlayListVidos.SelectedItem != null || lstVidos?.SelectedItem == null))
                {
                    lstPlayListVidos.SelectedItem = _video;
                }
                else if (lstVidos != null)
                {
                    lstVidos.SelectedItem = _video;
                }
            };

            yVideo.OnError = (e) =>
            {
                //Methods.Logger()
            }; // play next and ignore the error
            yVideo.OnVideoEnded = VideoEnded;
            yVideo.OnNext       = VideoEnded;
            yVideo.OnPrev       = () => { AutoPlay(false); };
            this.AddTrigger(ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveCategory(null)),
                            ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveVideo(null)));
        }
示例#12
0
        private List <int> BodyContainsCon(EmailMessage email)
        {
            ControllerRepository getConIdBySiteId = new ControllerRepository();

            List <int> controllerId = new List <int>();

            List <Controller> listControllers = listOfControllers.Where(controller => email.TextBody.ToString().Contains(controller.ControllerName)).ToList();

            foreach (var item in listControllers)
            {
                controllerId.Add(item.ControllerId);
            }
            List <Site> listSites = listOfSites.Where(site => email.TextBody.ToString().Contains(site.SiteName) | email.TextBody.ToString().Contains(site.SiteCode)).ToList();

            foreach (var item in listSites)
            {
                List <int> GetControllerIdsBySiteId = getConIdBySiteId.GetControllerIdsBySiteId(item.SiteId);
                controllerId.AddRange(GetControllerIdsBySiteId);
            }


            if (controllerId.Count != 0)
            {
                return(controllerId);
            }

            return(new List <int> {
                -1
            });
        }
示例#13
0
        public static async Task SaveUserChanges()
        {
            MethodInformation info = null;

            CurrentUser = ControllerRepository.Db(x => x.SaveUser(CurrentUser), (u, i) => { info = u; });
            await info?.ExecuteTrigger();
        }
示例#14
0
        private static List <Controller> getAllControllers()
        {
            ControllerRepository getAllCon         = new ControllerRepository();
            List <Controller>    listOfControllers = getAllCon.GetAllControllers();

            return(listOfControllers);
        }
示例#15
0
 public MainPage()
 {
     InitializeComponent();
     BackgroundColor = (Color)Application.Current.Resources["applicationColor"];
     this.AddTrigger(ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveVideo(null)))
     .AddTrigger(ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveCategory(null)))
     .AddTrigger(ControllerRepository.GetInfo <IDbController, Realm.Of.Y.Manager.Models.Container.DB_models.User>(x => x.SaveUser(null)))
     .AddTrigger(ControllerRepository.GetInfo <IDbController, Models.Container.DB_models.User>(x => x.LogIn(null, null, null)));
 }
示例#16
0
        protected void DeleteUserCon_Click(object sender, ImageClickEventArgs e)
        {
            var btn       = (ImageButton)sender;
            int conUserId = Convert.ToInt32(btn.CommandArgument);
            ControllerRepository conUserReb = new ControllerRepository();

            conUserReb.DeleteUserController(conUserId);
            BindRepeater();
        }
示例#17
0
 public Home()
 {
     this.AddTrigger(ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveVideo(null)))
     .AddTrigger(ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveCategory(null)))
     .AddTrigger(ControllerRepository.GetInfo <IDbController, Models.Container.DB_models.User>(x => x.LogIn(null, null, null)));
     this.LoadValueConverters();
     InitializeComponent();
     DataBinder();
 }
示例#18
0
 public LocalVideo(long categoryId)
 {
     _category_Id = categoryId;
     InitializeComponent();
     this.AddTrigger(
         ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveCategory(null)),
         ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveVideo(null)));
     expandableView.IsExpanded = true;
 }
示例#19
0
 public SearchResult(VideoSearchType videoSearchType, string searchFor)
 {
     _searchfor       = searchFor;
     _videoSearchType = videoSearchType;
     this.AddTrigger(
         ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveCategory(null)),
         ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveVideo(null)));
     InitializeComponent();
 }
 public VideosProperties(VideoWrapper video, long categoryId)
 {
     InitializeComponent();
     _categoryId = categoryId;
     lstVideosProperties.Category_Id = categoryId;
     _requastedItem = video;
     this.AddTrigger(
         ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveCategory(null)),
         ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveVideo(null)));
 }
示例#21
0
        protected void btnSave_Click(object sender, EventArgs e)
        {
            ControllerRepository controllerRep = new ControllerRepository();


            int id = Convert.ToInt32(hdnId.Value);

            if (string.IsNullOrWhiteSpace(txtConName.Text.ToString().Trim()))
            {
                lblErrorMsg.Text      = "Controller must have name";
                lblErrorMsg.ForeColor = Color.Red;
                lblErrorMsg.Font.Bold = true;
                txtConName.Focus();
                return;
            }

            if (ddlTechnology.SelectedIndex == 0)
            {
                lblErrorMsg.Text      = "Controller must have Technology";
                lblErrorMsg.ForeColor = Color.Red;
                lblErrorMsg.Font.Bold = true;
                ddlTechnology.Focus();
                return;
            }

            if (id < 0)
            {
                int idController = controllerRep.InsertNewController(GetVaules());
                if (idController > 0)
                {
                    Page.Response.Redirect(Page.Request.Url.ToString(), true);
                    setTextBoxesNull();
                }
                else
                {
                    setTextBoxesNull();
                }
            }
            else
            {
                bool idController = controllerRep.UpdateController(GetUpdateVaules(id));

                if (idController)
                {
                    Page.Response.Redirect(Page.Request.Url.ToString(), true);
                    DoneOrNot.Text = "Done";
                    setTextBoxesNull();
                }
                else
                {
                    DoneOrNot.Text = "You have problem";
                    setTextBoxesNull();
                }
            }
        }
示例#22
0
        private void BindDDlUser()
        {
            ControllerRepository users = new ControllerRepository();
            DataTable            Users = users.GetUsers();

            ddlUsers.DataValueField = "UserID";
            ddlUsers.DataTextField  = "FullName";
            ddlUsers.DataSource     = Users;
            ddlUsers.DataBind();
            ddlUsers.Items.Insert(0, "--Select User--");
        }
示例#23
0
 /// <summary>
 /// Reload/Load the userData
 /// </summary>
 /// <returns></returns>
 public static void LoadUserData(bool forceReload = true)
 {
     if (CurrentUser == null)
     {
         return;
     }
     if (forceReload)
     {
         VideoCategoryViews = CurrentUser?.EntityId.HasValue ?? false?ControllerRepository.Db(x => x.GetVideoCategory(CurrentUser.EntityId, null)) : new List <VideoCategoryView>();
     }
 }
示例#24
0
 public SearchView(YVideoCollection videos, string text)
 {
     InitializeComponent();
     _videos = videos;
     stVideoContainer.HeaderIsVisible = _videos.Playlists.Any();
     lstAlbums.HeaderIsVisible        = _videos.Albums.Any();
     stVideoContainer.HeaderIsVisible = _videos.Videos.Any();
     textSearch = text;
     this.AddTrigger(
         ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveCategory(null)),
         ControllerRepository.GetInfo <IDbController, Task>(x => x.SaveVideo(null)));
 }
示例#25
0
        private void PlayListSuggesting_SelectedItemChanged(object sender, EventArgs e)
        {
            var category      = playListSuggesting.SelectedItem as VideoCategoryView;
            var videos        = ControllerRepository.Db(x => x.GetVideoData(null, category.EntityId, null, 1)).Await();
            var videoWrappers = videos?.Select(x => new VideoWrapper(x)).ToList();
            var playList      = new VideoWrapper()
            {
                Title = videoWrappers.First().Title, Videos = videoWrappers, IsVideo = false, IsPlaylist = true
            };

            new Video(playList, videoWrappers).LoadData().Open();
            playListSuggesting.SelectedItem = null;
        }
示例#26
0
 private void _txtSearch_TextChanged(object sender, dotMorten.Xamarin.Forms.AutoSuggestBoxTextChangedEventArgs e)
 {
     if (e.Reason == AutoSuggestionBoxTextChangeReason.UserInput)
     {
         Task.Run(async() =>
         {
             var source = ControllerRepository.Y(x => x.GetSuggestQueries(_txtSearch.Text)).Await()?.ToList();
             Device.BeginInvokeOnMainThread(() =>
             {
                 _txtSearch.ItemsSource = source;
             });
         });
     }
 }
示例#27
0
        private void BindControllersList(string technologyId)
        {
            DataTable dataTable = new DataTable();

            ControllerRepository controllers = new ControllerRepository();

            dataTable = controllers.GetControllerAssign(int.Parse(technologyId));

            ddlContrcoller.DataValueField = "ControllerId";
            ddlContrcoller.DataTextField  = "ControllerName";
            ddlContrcoller.DataSource     = dataTable;
            ddlContrcoller.DataBind();
            ddlContrcoller.Items.Insert(0, "--Select Controller--");
        }
示例#28
0
        /// <summary>
        ///     Save VideoCategory
        /// </summary>
        /// <param name="videoCategories"></param>
        public static async Task <long> SaveCategory(VideoCategory videoCategory)
        {
            MethodInformation info = null;

            if (videoCategory.State == State.Removed)
            {
                UserData.DirectoryManager.Folder(videoCategory.Name).Delete();
            }
            var id = ControllerRepository.Db(x => x.SaveCategory(videoCategory), (i, x) => info = i).Await();

            LoadUserData(true);
            await info.ExecuteTrigger();

            return(await Task.FromResult(id));
        }
 private UnitOfWork()
 {
     this._context    = new CapInnovativeIdiaDbContext();
     Idia             = new IdiaRepository(_context);
     User             = new UserRepository(_context);
     Role             = new RoleRepository(_context);
     Account          = new AccountRepository(_context);
     Controller       = new ControllerRepository(_context);
     ControllerAction = new ControllerActionRepository(_context);
     UserAccess       = new UserAccessRepository(_context);
     Team             = new TeamRepository(_context);
     IdiaCategory     = new IdiaCategoryRepository(_context);
     IdiaProposal     = new IdiaProposalRepository(_context);
     IdiaStatus       = new IdiaStatusRepository(_context);
 }
示例#30
0
        /// <summary>
        ///     Prepare a downloadable object
        /// </summary>
        /// <param name="ytubeItem"></param>
        /// <param name="videoCategory"></param>
        /// <returns></returns>
        public static YFileDownloadItem GetDownloadableItem(this VideoData ytubeItem)
        {
            var videoCategory = ControllerRepository.Db(x => x.GetVideoCategory(UserData.CurrentUser.EntityId, ytubeItem.Category_Id)).FirstOrDefault();

            if (ytubeItem.Video_Id.ToLower().Contains("youtube"))
            {
                ytubeItem.Video_Id = ytubeItem.Video_Id.Split('=').Last();
            }
            var v = new YFileDownloadItem();

            v.Playlist    = videoCategory?.Name;
            v.VideoId     = ytubeItem.Video_Id;
            v.Title       = ytubeItem.Title;
            v.category_Id = videoCategory?.EntityId;
            v.ThumpUrl    = ytubeItem.ThumpUrl;
            return(v);
        }
示例#31
0
        public int ClearNonExistRecords()
        {
            int ret = 0;
            using (DbClient client = DataFactory.CretDbClient())
            {
                ControllerRepository controllerRepository = new ControllerRepository(client.Cmd);
                List<Controller> controllers = controllerRepository.Select().ToList();

                if (controllers.Count > 0)
                {
                    ActionRepository actionRepository = new ActionRepository(client.Cmd);

                    ControllerActionsList reflecteds = ControllerActionsList.Create<ReflectControllerApi, ReflectControllerMvc>(AppDomain.CurrentDomain.GetAssemblies());

                    foreach (Controller controller in controllers)
                    {
                        ControllerActions ca = reflecteds.FirstOrDefault((item) => String.Equals(controller.Name, item.ControllerType.Name.Replace("Controller", "")));
                        if (null != ca)
                        {
                            List<Models.Action> actions = actionRepository.SelectByControllerId(controller.Id).ToList();
                            foreach (Models.Action action in actions)
                            {
                                ActionMethodInfo ami = ca[action.Name];
                                if (null == ami)//Mesela method silindi veya ismi değiştirildi.
                                {
                                    ret = DeleteRecordsByControllerAction(action);
                                }
                            }
                        }
                        else
                        {
                            ret += DeleteRecordsByController(controller);
                        }

                    }
                }
            }

            return ret;
        }
示例#32
0
        // RadioButton button List< çalışmıyor.>
        //Reflection ile gelen ekrandan oluşan verilerin db ye yansıltılması.
        public int Save(IEnumerable<RoleControllerActionEntity> list)
        {
            int ret = 0;
            if (!list.IsEmptyList())
            {
                //Öncelikle Her nekadar entity de Role name olsa bile tek bir role adı olmalı. O yüzden kontrol ediyoruz.
                HashSet<string> roleNames = new HashSet<string>();
                                HashSet<ControllerType> cts = new HashSet<ControllerType>();
                list.ForEach((e) => { roleNames.Add(e.RoleName); cts.Add(e.Type); });

                if (roleNames.Count != 1)
                    throw new ArgumentException("RoleActionEntity List contains more than one role");

                if (cts.Count != 1)
                    throw new ArgumentException("RoleActionEntity List contains more than one ControlType(Api or Mvc)");

                using (TransactionalDbClient tc = DataFactory.CreateTransactionalDbClient())
                {
                    RoleRepository roleRepository = new RoleRepository(tc.Cmd);
                    ControllerRepository controllerRepository = new ControllerRepository(tc.Cmd);
                    ActionRepository actionRepository = new ActionRepository(tc.Cmd);

                    IndexedEntityList<Role> dbRoles = new IndexedEntityList<Role>(roleRepository.Select(), r => r.Name);
                    IndexedEntityList<Controller> dbControllers = new IndexedEntityList<Controller>(controllerRepository.Select(), a => a.Name);
                    IndexedEntityList<Models.Action> dbActions = new IndexedEntityList<Models.Action>(actionRepository.Select(), a => a.ControllerId, a => a.Name);

                    List<RoleAction> dbEntityList = new List<RoleAction>(list.Count());
                    Role dbRole = null;
                    foreach (RoleControllerActionEntity uiEntity in list)//Storage veritabanından geldi.
                    {
                        //  Buradayız ama. controller den gelecek check edi,lmiş contooler ve action ları RoleControllerAction tablosuna yazmak.
                        dbRole = dbRoles.Find(uiEntity.RoleName);
                        if (null == dbRole)
                        {
                            dbRole = DataFactory.CreateEntity<Role>();
                            dbRole.Name = uiEntity.RoleName;//Yani db de yoksa bile eğer reflection ile gelmiş ise yani eklendi ise db ye de ekle.

                            roleRepository.Insert(dbRole);

                            dbRoles.Add(dbRole); // yeni db ye eklenen kayıt cache lenmiş dataya ekleniyor.
                        }

                        //Önceklikle Controller Denetlenmeli.
                        Controller dbController = dbControllers.Find(uiEntity.ControllerName);
                        if (null == dbController)
                        {
                            dbController = DataFactory.CreateEntity<Controller>();
                            dbController.Name = uiEntity.ControllerName;
                            dbController.Type = (Byte)((Int32)uiEntity.Type);

                            controllerRepository.Insert(dbController);

                            dbControllers.Add(dbController);
                        }

                        Models.Action dbControllerAction = dbActions.Find(dbController.Id, uiEntity.ActionName);
                        if (null == dbControllerAction)//Yani db de yoksa bile eğer reflection ile gelmiş ise yani eklendi ise db ye de ekle.
                        {
                            dbControllerAction = DataFactory.CreateEntity<Models.Action>();
                            dbControllerAction.Name = uiEntity.ActionName;
                            dbControllerAction.ControllerId = dbController.Id;

                            actionRepository.Insert(dbControllerAction);

                            dbActions.Add(dbControllerAction);
                        }

                        RoleAction dbEntity = DataFactory.CreateEntity<RoleAction>();
                        dbEntity.ActionId = dbControllerAction.Id;
                        dbEntity.RoleId = dbRole.Id;
                        dbEntity.Enabled = uiEntity.Enabled;

                        dbEntityList.Add(dbEntity);
                        // else cascade silinecek.
                    }
                    if (dbRole == null)
                        throw new InvalidOperationException("Role can not be null");

                    RoleActionRepository roleActionRepository = new RoleActionRepository(tc.Cmd);
                    //Örneğin RoleControllerAction Tablosunun hepsi Silenebilir.

                    SqlQuery deleteQuery = @"delete rca from RoleAction rca
                    inner join Action ca on rca.ActionId=ca.Id
                    inner join Controller c on ca.ControllerId = c.Id
                    where c.Type=@0 and rca.RoleId=@1".ToQuery(cts.First().Cast<int>(), dbRole.Id);//Zaten tüm elemanlar aynı ControllerType' a sahip olmak zorunda.

                    ret += tc.DataAccess.ExecuteNonQuery(deleteQuery);

                    ret = roleActionRepository.BatchInsert(dbEntityList);

                    tc.Commit();
                }
            }

            return ret;
        }
示例#33
0
        private static int DeleteRecordsByController(Controller controller)
        {
            int ret = 0;
            using (TransactionalDbClient tc = DataFactory.CreateTransactionalDbClient())
            {
                ControllerRepository controllerRepository = new ControllerRepository(tc.Cmd);
                ActionRepository actionRepository = new ActionRepository(tc.Cmd);
                List<Models.Action> controllerActions = actionRepository.SelectByControllerId(controller.Id).ToList();

                if (!controllerActions.IsEmptyList())
                {
                    List<int> controllerActionIds = new List<int>(controllerActions.Count);
                    controllerActions.ForEach((aa) => controllerActionIds.Add(aa.Id));

                    //RoleControllerAction Siliniyor.
                    RoleActionRepository roleControllerActionRepository = new RoleActionRepository(tc.Cmd);
                    ret += roleControllerActionRepository.DeleteByControllerActionIds(controllerActionIds);

                    //controllerAction Siliniyor.
                    ret += actionRepository.DeleteByControllerId(controller.Id);
                }
                //controller Siliniyor.
                ret += controllerRepository.Delete(controller);

                tc.Commit();
            }

            return ret;
        }