public void SetUp()
        {
            InitializeDataSets();
            MockRepository   = new Mock <IRepository>();
            MockGroupService = new Mock <IGroupService>();
            MockUserService  = new Mock <IUserService>();
            MockRoleService  = new Mock <IRoleService>();

            MockRepository.Setup(m => m.GetSet <User>()).Returns(() => UserSet);
            MockRepository.Setup(m => m.GetSet <Group>()).Returns(() => GroupSet);
            MockRepository.Setup(m => m.GetSet <Role>()).Returns(() => RoleSet);
            MockRepository.Setup(m => m.GetSet <Project>()).Returns(() => ProjectSet);
            MockRepository.Setup(m => m.GetSet <ProjectUser>()).Returns(() => ProjectUserSet);
            MockRepository.Setup(m => m.GetSet <ProjectRole>()).Returns(() => ProjectRoleSet);
            MockRepository.Setup(m => m.GetSet <ProjectGroup>()).Returns(() => ProjectGroupSet);
            MockRepository.Setup(m => m.GetSet <ProjectUserRole>()).Returns(() => ProjectUserRoleSet);

            MockUserService.Setup(m => m.FindUser(1)).Returns(() => UserSet.FirstOrDefault(u => u.Id == 1));
            MockUserService.Setup(m => m.FindUser(2)).Returns(() => UserSet.FirstOrDefault(u => u.Id == 2));
            MockUserService.Setup(m => m.FindUser(3)).Throws <NotFoundException>();

            MockRoleService.Setup(m => m.FindRole(1)).Returns(() => RoleSet.First(r => r.Id == 1));
            MockRoleService.Setup(m => m.FindRole(2)).Returns(() => RoleSet.First(r => r.Id == 2));
            MockRoleService.Setup(m => m.FindRole(3)).Throws <NotFoundException>();

            MockGroupService.Setup(m => m.FindGroup(1)).Returns(() => GroupSet.First(g => g.Id == 1));
            MockGroupService.Setup(m => m.FindGroup(2)).Returns(() => GroupSet.First(g => g.Id == 2));
            MockGroupService.Setup(m => m.FindGroup(3)).Throws <NotFoundException>();
        }
        public void displaySelectedGroupset(string model)
        {
            GroupSet groupset = findGroupSet(model);

            if (groupset != null)
            {
                tabGsTxtModel.Text  = groupset.Model;
                tabGsTxtPrice.Text  = "£" + groupset.Cost.ToString();
                tabGsTxtBrakes.Text = groupset.Brakes;
                tabGsTxtGears.Text  = groupset.Gears;

                if (groupset.IsSpecialised)
                {
                    tabGsTxtSpecialised.Text = "Specialised Component";
                }
                else
                {
                    tabGsTxtSpecialised.Text = "Standard Component";
                }
                if (groupset.Availability)
                {
                    tabGsTxtStock.Text = "In Stock!";
                }
                else
                {
                    tabGsTxtStock.Text = "Out of Stock";
                }
            }
        }
        private void tabGsBtnConfirm_Click(object sender, RoutedEventArgs e)
        {
            string           sCaption      = "Build a Bike";
            MessageBoxButton btnMessageBox = MessageBoxButton.OK;
            MessageBoxImage  icnMessageBox = MessageBoxImage.Information;

            if (tabGsLstModels.SelectedIndex == -1)
            {
                MessageBox.Show("You need to select a Group Set Model", sCaption, btnMessageBox, icnMessageBox);
            }
            else
            {
                GroupSet groupset = findGroupSet(tabGsLstModels.SelectedItem.ToString());
                if (groupset != null)
                {
                    try
                    {
                        bike.GroupSet     = groupset;
                        groupsetCompleted = true;

                        TextBlock header = new TextBlock();
                        header.Text        = "Group Set";
                        header.Background  = Brushes.LightGreen;
                        tabGroupSet.Header = header;
                    }
                    catch (ArgumentException error)
                    {
                        MessageBox.Show(error.Message, sCaption, btnMessageBox, MessageBoxImage.Error);
                    }
                }
            }
        }
Пример #4
0
		private void PanelInvite_Load(object sender, System.EventArgs e)
		{
			if (Mode.Equals(Modes.None))
			{
				ContainerPage.SetPageTitle(String.Format("Invite {0} to a group...", ThisUsr.NickName));
				InviteUsrAnchor.HRef = ThisUsr.Url();
				InviteUsrAnchor.InnerText = ThisUsr.NickName;
				ThisUsr.MakeRollover(InviteUsrAnchor);
				Header.InnerText = String.Format("Invite {0} to a group...", ThisUsr.NickName);

				if (!Page.IsPostBack)
				{
					Query q = new Query();
					q.Columns = new ColumnSet(Group.Columns.Name, Group.Columns.K);
					q.QueryCondition = Usr.Current.GroupMemberQ;
					q.TableElement = Group.UsrMemberJoin;
					q.OrderBy = new OrderBy(Group.Columns.Name);
					GroupSet gs = new GroupSet(q);
					if (gs.Count == 0)
					{
						ChangePanel(PanelNoGroups);
					}
					else
					{
						GroupDropDown.DataSource = gs;
						GroupDropDown.DataTextField = "Name";
						GroupDropDown.DataValueField = "K";
						GroupDropDown.DataBind();
					}
				}
			}
		}
        private GroupSet ReadAvailableGroups()
        {
            var results = new GroupSet();

            try
            {
                string[] files = Directory.GetFiles(@"Resources\Students", "*.json", SearchOption.AllDirectories);
                foreach (var file in files)
                {
                    var json = File.ReadAllText(file);
                    var item = JsonConvert.DeserializeObject <GroupSet>(json);
                    if (item != null)
                    {
                        foreach (var gr in item.Groups)
                        {
                            results.Groups.Add(gr);
                        }
                    }
                }
            }
            catch (Exception e)
            {
            }
            return(results.Groups.Count > 0 ? results : dummySet);
        }
Пример #6
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            GroupSet groupSet = await db.GroupSet.FindAsync(id);

            db.GroupSet.Remove(groupSet);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
 public StudentSelectionViewModel(GroupSet groups)
 {
     if (groups != null && groups.Groups != null)
     {
         Groups          = groups.Groups;
         SelectedGroup   = Groups.FirstOrDefault();
         SelectedStudent = SelectedGroup.Students.FirstOrDefault();
     }
 }
Пример #8
0
        public ActionResult Add(GroupSet group)
        {
            var teacherId = _authenticationService.GetUserIdFromRequest(Request);

            _applicationService.AddGroup(group, teacherId);
            var groups = _applicationService.GetGroupsByTeacherId(teacherId);

            return(View("List", groups));
        }
Пример #9
0
        public StudentListViewModel MapToStudentListViewModel(GroupSet group, List <StudentSet> students)
        {
            var studentListViewModel = new StudentListViewModel()
            {
                Group    = group,
                Students = students
            };

            return(studentListViewModel);
        }
Пример #10
0
        public void ApplyScore(GroupSet gs)
        {
            float score = 0;

            foreach (Group group in gs.Groups)
            {
                score += CalcGroupScore(group);
            }

            gs.Score = score;
        }
Пример #11
0
        public async Task <ActionResult> Edit([Bind(Include = "GroupId,GroupName,DepartmentName,MonitorOfTheTeam,MonitorTel,MonitorEmail")] GroupSet groupSet)
        {
            if (ModelState.IsValid)
            {
                db.Entry(groupSet).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(groupSet));
        }
Пример #12
0
        public async Task <ActionResult> Create([Bind(Include = "GroupId,GroupName,DepartmentName,MonitorOfTheTeam,MonitorTel,MonitorEmail")] GroupSet groupSet)
        {
            if (ModelState.IsValid)
            {
                db.GroupSet.Add(groupSet);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(groupSet));
        }
Пример #13
0
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            GroupSet groupSet = await db.GroupSet.FindAsync(id);

            if (groupSet == null)
            {
                return(HttpNotFound());
            }
            return(View(groupSet));
        }
Пример #14
0
        public ActionResult SelectFlow(SelectFlowViewModel viewModel)
        {
            var groupSets = UnitOfWork.Repository <GroupSet>()
                            .Get(x => x.ApplicationUserId == UserProfile.Id)
                            .ToList();

            foreach (var groupSet in groupSets)
            {
                groupSet.IsSelected = false;
                UnitOfWork.Repository <GroupSet>().Update(groupSet);
            }

            var groupSetGroups = viewModel.Groups
                                 .Select(x => new GroupSetGroup
            {
                GroupSetId = viewModel.GroupSetId,
                GroupId    = x.GroupId,
                Order      = x.Order ?? 0
            })
                                 .ToList();

            var currentGroupSet = groupSets.SingleOrDefault(x => x.GroupSetId == viewModel.GroupSetId);

            if (currentGroupSet == null)
            {
                currentGroupSet = new GroupSet
                {
                    ApplicationUserId = UserProfile.Id,
                    GroupSetName      = viewModel.GroupSetName
                };

                UnitOfWork.Repository <GroupSet>().Insert(currentGroupSet);
            }
            else
            {
                UnitOfWork.Repository <GroupSetGroup>().DeleteRange(x => x.GroupSetId == currentGroupSet.GroupSetId);
                UnitOfWork.Repository <GroupSet>().Update(currentGroupSet);
            }

            currentGroupSet.GroupSetGroups = groupSetGroups;
            currentGroupSet.IsSelected     = true;
            UnitOfWork.Save();

            return(Json(new { result = "Redirect", url = Url.Action("Index", "Home") }));
        }
Пример #15
0
        public void ParseGroups(string input, GroupSet expected = null, bool showTokens = false)
        {
            var tokens = SuperTokenizer.Tokenize(input);

            if (showTokens)
            {
                Out(tokens);
            }
            var result = SuperParser.GroupParser.TryParse(tokens);

            Assert.That(result.HasValue, Is.EqualTo(expected != null),
                        "FAIL: " + input + " " + result.HasValue);

            if (expected != null)
            {
                Assert.That(result.Value, Is.EqualTo(expected));
            }
        }
Пример #16
0
		public GroupSet GetUsrsGroups(int usrK)
		{
			Query q = new Query();
			q.QueryCondition = new And(
				new Q(GroupUsr.Columns.UsrK, usrK),
				new Q(GroupUsr.Columns.Status, GroupUsr.StatusEnum.Member)
				);
			q.Columns = new ColumnSet(
				Group.Columns.Name,
				Group.Columns.K
				);
			q.OrderBy = new OrderBy(
				new OrderBy(GroupUsr.Columns.Favourite, OrderBy.OrderDirection.Descending),
				new OrderBy(Group.Columns.Name));
			q.TableElement = Group.UsrMemberJoin;
			GroupSet gs = new GroupSet(q);
			return gs;
		}
Пример #17
0
 public MapGenerator(int width, int height, int seed, GroupSet groupGenerator, IEnumerable <AppliedBonus> bonuses)
 {
     Random = new Random(seed);
     Cells  = new GeneratorCell[width, height];
     for (int x = 0; x < width; x++)
     {
         for (int y = 0; y < height; y++)
         {
             Cells[x, y]        = new GeneratorCell(this, x, y, GeneratorTile.Empty);
             Cells[x, y].Weight = Random.NextDouble();
         }
     }
     GroupGenerator = groupGenerator;
     Bonuses.AddRange(bonuses);
     foreach (var bonus in Bonuses)
     {
         bonus.Bonus.Apply(this);
     }
 }
Пример #18
0
		void BindGroupsDataList()
		{
			Q musicTypeQ = null;
			if (ContainerPage.Url.HasMusicFilter)
				musicTypeQ = new Q(Group.Columns.MusicTypeK, ContainerPage.Url.MusicFilterK);

			Q themeQ = null;
			if (ContainerPage.Url.HasThemeFilter)
				themeQ = new Q(Group.Columns.ThemeK, ContainerPage.Url.ThemeFilterK);

			Q countryQ = null;
			if (ContainerPage.Url.HasCountryObjectFilter)
				countryQ = new Q(Group.Columns.CountryK, ContainerPage.Url.ObjectFilterK);

			Q placeQ = null;
			if (ContainerPage.Url.HasPlaceObjectFilter)
				placeQ = new Q(Group.Columns.PlaceK, ContainerPage.Url.ObjectFilterK);

			Query q = new Query();
			q.Columns = Templates.Groups.GroupBrowser.Columns;
			q.OrderBy = new OrderBy(
				new OrderBy(Group.Columns.FavouriteCount, OrderBy.OrderDirection.Descending),
				new OrderBy(Group.Columns.TotalComments, OrderBy.OrderDirection.Descending),
				new OrderBy(Group.Columns.TotalMembers, OrderBy.OrderDirection.Descending));
			q.QueryCondition = new And(
				new Q(Group.Columns.TotalMembers, QueryOperator.GreaterThan, 10),
				new Q(Group.Columns.PrivateGroupPage, false),
				new Q(Group.Columns.BrandK, 0),
				musicTypeQ,
				themeQ,
				countryQ,
				placeQ);

			GroupSet gs = new GroupSet(q);

			GroupsDataList.DataSource = gs;
			GroupsDataList.ItemTemplate = this.LoadTemplate("/Templates/Groups/GroupBrowser.ascx");
			GroupsDataList.DataBind();



		}
Пример #19
0
        } //main method

        //以下为各种method-------------------------------------------------------------------
        //通过字符串获取组内元素的唯一族类型id列表
        public ICollection <ElementId> GetfamilysymbolIdsInGroup(Document originDoc, GroupType originGroupType)
        {
            GroupSet groupSet = originGroupType.Groups;//获取该组类型的所有组实例

            IList <ElementId> groupMembers = new List <ElementId>();

            foreach (Group group in groupSet)
            {
                groupMembers = group.GetMemberIds();//取出最后一个组实例的所有元素ID
            }

            ICollection <ElementId> familysymbolIds = new List <ElementId>();

            foreach (ElementId eleid in groupMembers)
            {
                ElementId _eleId = originDoc.GetElement(eleid).GetTypeId(); //获取组内元素的类型id
                if (_eleId.IntegerValue != -1)                              //---判断一个元素是否存在族类型---解决的一个主要问题是,填充样式在组内是以子类别图元形式存在
                {
                    familysymbolIds.Add(_eleId);
                }
            }
            familysymbolIds = familysymbolIds.Distinct().ToList();//剔除元素Id的重复值,得到源文档目标组内的族类型id
            return(familysymbolIds);
        }
Пример #20
0
        public void GroupSetTest()
        {
            string model        = "Some model";
            string gears        = "Some gears";
            string brakes       = "Some brakes";
            double cost         = 469.99;
            bool   availability = true;

            GroupSet groupset = new GroupSet();

            groupset.Model        = model;
            groupset.Gears        = gears;
            groupset.Brakes       = brakes;
            groupset.Cost         = cost;
            groupset.Availability = availability;

            Assert.AreEqual(model, groupset.Model, "GroupSet Test - Model");
            Assert.AreEqual(gears, groupset.Gears, "GroupSet Test - Gears");
            Assert.AreEqual(brakes, groupset.Brakes, "GroupSet Test - Brakes");
            // default specialised is false (if nothing has been set)
            Assert.AreEqual(false, groupset.IsSpecialised, "GroupSet Test - Specialised");
            Assert.AreEqual(cost, groupset.Cost, "GroupSet Test - Cost");
            Assert.AreEqual(availability, groupset.Availability, "GroupSet Test - Availability");
        }
Пример #21
0
		private void Page_Load(object sender, System.EventArgs e)
		{

			Usr.KickUserIfNotLoggedIn("You must be logged in to use this page.");
			this.SetPageTitle("Add this photo to the group homepage");
			PhotoImg.Src = CurrentPhoto.IconPath;
			PhotoAnchor.HRef = CurrentPhoto.Url();

			if (CurrentGroup == null)
			{
				GroupPanel.Visible = false;

				Query q = new Query();
				q.TableElement = new Join(
					new TableElement(TablesEnum.Group),
					new TableElement(TablesEnum.GroupUsr),
					QueryJoinType.Inner,
					new And(
					new Q(Bobs.Group.Columns.K, GroupUsr.Columns.GroupK, true),
					new Q(GroupUsr.Columns.Moderator, true),
					new Q(GroupUsr.Columns.UsrK, Usr.Current.K)));
				GroupSet gs = new GroupSet(q);
				if (gs.Count == 0)
					throw new Exception("No groups!");
				else if (gs.Count == 1)
					Response.Redirect(CurrentPhoto.UrlApp("addtogroup", "groupk", gs[0].K.ToString()));
				else
				{
					GroupRepeater.DataSource = gs;
					GroupRepeater.DataBind();
				}
			}
			else
			{
				RepeaterPanel.Visible = false;

				GroupUsr gu = CurrentGroup.GetGroupUsr(Usr.Current);
				if (gu == null || !gu.Moderator)
					throw new DsiUserFriendlyException("You can't add a photo to this group!");

				if (!Page.IsPostBack)
				{
					try
					{
						GroupPhoto gp = new GroupPhoto(CurrentGroup.K, CurrentPhoto.K);
						ShowCheckBox.Checked = gp.ShowOnFrontPage;
						CaptionTextBox.Text = gp.Caption;
					}
					catch
					{

					}

					CaptionCompetitionCheckBox.Visible = Usr.Current.IsAdmin && CurrentGroup.K == Vars.CompetitionGroupK;
					if (CaptionCompetitionCheckBox.Visible)
					{
						CaptionCompetitionCheckBox.Checked = CurrentPhoto.IsInCaptionCompetition;
					}
				}
			}


		}
Пример #22
0
        /*! \cond PRIVATE */

        GroupSet addGroupItems(CGBoundsGroup group, ref List<CGSpot> spots, ref float remainingLength, ref float currentDistance, bool calcLengthOnly = false)
        {

            if (group.ItemCount == 0)
                return null;

            CGBounds currentBounds;
            int itemID;
            int added = 0;

            float gapBefore = group.SpaceBefore.Next;
            float gapAfter = group.SpaceAfter.Next;
            float remain = remainingLength - gapBefore;
            GroupSet vGroup = null;
            GroupSet endItems = new GroupSet();

            float dist = currentDistance + gapBefore;



            if (calcLengthOnly)
            {
                vGroup = new GroupSet();
                vGroup.Group = group;
                vGroup.Length = gapBefore + gapAfter;

            }
            // Fixed Start Item(s)

            for (int i = 0; i < group.FirstRepeating; i++)
            {
                itemID = group.Items[i].Index;
                currentBounds = getItemBounds(itemID);
                if (currentBounds)
                {
                    remain -= currentBounds.Depth;
                    if (remain > 0)
                    {
                        if (calcLengthOnly)
                        {
                            vGroup.Length += currentBounds.Depth;
                            vGroup.Items.Add(itemID);
                            vGroup.Distances.Add(dist);
                        }
                        else
                            spots.Add(getSpot(itemID, ref group, ref currentBounds, dist, remainingLength));

                        dist += currentBounds.Depth;
                        added++;
                    }
                    else
                    {
                        if (group.KeepTogether && added > 0)
                        {
                            spots.RemoveRange(spots.Count - added, added);
                        }
                        break;
                    }
                }
            }
            if (remain > 0)
            {
                float endDist = 0;
                // Fixed End Item(s)
                for (int i = group.LastRepeating + 1; i < group.ItemCount; i++)
                {
                    itemID = group.Items[i].Index;
                    currentBounds = getItemBounds(itemID);
                    if (currentBounds)
                    {
                        remain -= currentBounds.Depth;
                        if (remain > 0)
                        {
                            endItems.Length += currentBounds.Depth;
                            endItems.Items.Add(itemID);
                            endItems.Distances.Add(endDist);
                            endDist += currentBounds.Depth;
                        }
                        else
                            break;
                    }
                }


                if (remain > 0)
                {
                    // Mid Items
                    int itemIdx;
                    for (int i = group.FirstRepeating; i <= group.LastRepeating; i++)
                    {
                        itemIdx = (group.RepeatingOrder == CurvyRepeatingOrderEnum.Row) ? i : group.getRandomItemINTERNAL();
                        itemID = group.Items[itemIdx].Index;

                        currentBounds = getItemBounds(itemID);
                        if (currentBounds)
                        {
                            remain -= currentBounds.Depth;
                            if (remain > 0)
                            {
                                if (calcLengthOnly)
                                {
                                    vGroup.Length += currentBounds.Depth;
                                    vGroup.Items.Add(itemID);
                                    vGroup.Distances.Add(dist);
                                }
                                else
                                    spots.Add(getSpot(itemID, ref group, ref currentBounds, dist, remainingLength));

                                dist += currentBounds.Depth;
                                added++;
                            }
                            else
                            {
                                if (group.KeepTogether && added > 0)
                                {
                                    spots.RemoveRange(spots.Count - added, added);
                                }
                                break;
                            }
                        }
                    }
                }

                if (remain > 0 || !group.KeepTogether)
                {
                    for (int e = 0; e < endItems.Items.Count; e++)
                    {
                        var b = getItemBounds(endItems.Items[e]);
                        spots.Add(getSpot(endItems.Items[e], ref group, ref b, dist + endItems.Distances[e], remainingLength));
                        dist += b.Depth;
                    }
                }
            }

            remainingLength = remain - gapAfter;
            currentDistance = dist + gapAfter;
            return vGroup;
        }
Пример #23
0
        public LauncherSettings DownloadSettings(bool force, bool FullLoad = true)
        {
            string           path  = "launcherDBSettings.dat";
            LauncherSettings graph = new LauncherSettings();

            if (force && File.Exists(path))
            {
                File.Delete(path);
            }
            if (File.Exists(path))
            {
                Stream          stream    = File.OpenRead(path);
                BinaryFormatter formatter = new BinaryFormatter();
                graph = (LauncherSettings)formatter.Deserialize(stream);
                stream.Close();
                return(graph);
            }
            using (AvtoritetEntities entities = new AvtoritetEntities())
            {
                List <NewLauncher.DataContext.Brand> list = (from r in entities.Brand
                                                             where r.Enable
                                                             orderby r.NameAndFolder
                                                             select r).ToList <NewLauncher.DataContext.Brand>();
                List <Provider> list2 = (from r in entities.Provider
                                         where r.Enable & FullLoad
                                         orderby r.Order
                                         select r).ToList <Provider>();
                List <ProviderAccount> list3 = (from t in entities.ProviderAccount
                                                where t.Enable & FullLoad
                                                select t).ToList <ProviderAccount>();
                List <NewLauncher.DataContext.CommandFile> list4 = (from t in entities.CommandFile
                                                                    where FullLoad
                                                                    select t).ToList <NewLauncher.DataContext.CommandFile>();
                List <NewLauncher.DataContext.ProviderFile> list5 = (from t in entities.ProviderFile
                                                                     where FullLoad
                                                                     select t).ToList <NewLauncher.DataContext.ProviderFile>();
                List <Group> list6 = (from t in entities.Group
                                      where t.Enable
                                      orderby t.Order
                                      select t).ToList <Group>();
                List <NewLauncher.DataContext.GroupBox> list7 = (from r in entities.GroupBox
                                                                 where r.Enable
                                                                 orderby r.Title
                                                                 select r).ToList <NewLauncher.DataContext.GroupBox>();
                foreach (Group group in list6)
                {
                    GroupSet item = new GroupSet {
                        Name      = group.Name,
                        Width     = group.Width.Value,
                        Height    = group.Height.Value,
                        GroupBoxs = new List <CatalogApi.Settings.GroupBox>()
                    };
                    foreach (NewLauncher.DataContext.GroupBox box in list7)
                    {
                        if (box.GroupId == group.GroupId)
                        {
                            CatalogApi.Settings.GroupBox box2 = new CatalogApi.Settings.GroupBox {
                                Left          = box.Left.Value,
                                Top           = box.Top.Value,
                                Width         = box.Width.Value,
                                Height        = box.Height.Value,
                                Title         = box.Title,
                                VisibleBorder = box.VisibleBorder.Value,
                                Brands        = new List <CatalogApi.Settings.Brand>()
                            };
                            foreach (NewLauncher.DataContext.Brand brand in list)
                            {
                                if (brand.GroupBoxId == box.GroupBoxId)
                                {
                                    CatalogApi.Settings.Brand brand2 = new CatalogApi.Settings.Brand {
                                        NameAndFolder = brand.NameAndFolder,
                                        IconPath      = brand.IconPath,
                                        IconPath2     = brand.IconPath2,
                                        IconPathImg   = brand.IconPathImg,
                                        IconPath2Img  = brand.IconPath2Img
                                    };
                                    int?top = brand.Top;
                                    brand2.Top         = top.HasValue ? top.GetValueOrDefault() : 0;
                                    top                = brand.Left;
                                    brand2.Left        = top.HasValue ? top.GetValueOrDefault() : 0;
                                    top                = brand.Width;
                                    brand2.Width       = top.HasValue ? top.GetValueOrDefault() : 0;
                                    top                = brand.Height;
                                    brand2.Height      = top.HasValue ? top.GetValueOrDefault() : 0;
                                    brand2.BrandId     = brand.BrandId;
                                    brand2.ButtonStyle = brand.ButtonStyle;
                                    brand2.MenuWindow  = brand.MenuWindow.Value;
                                    brand2.Providers   = new List <BrandProvider>();
                                    foreach (Provider provider in list2)
                                    {
                                        int providerId;
                                        if (provider.BrandId != brand.BrandId)
                                        {
                                            continue;
                                        }
                                        BrandProvider provider2 = new BrandProvider {
                                            Uri        = provider.Uri.Trim(),
                                            IconPath   = provider.IconPath,
                                            Title      = provider.Title,
                                            Commands   = provider.commandcontent,
                                            ProviderId = provider.ProviderId,
                                            Login      = "",
                                            Password   = ""
                                        };
                                        foreach (ProviderAccount account in list3)
                                        {
                                            if (account.ProviderId == provider.ProviderId)
                                            {
                                                provider2.Login    = (account != null) ? account.Login.Trim() : string.Empty;
                                                provider2.Password = (account != null) ? account.Password.Trim() : string.Empty;
                                                break;
                                            }
                                        }
                                        provider2.CommandFiles = new List <CatalogApi.Settings.CommandFile>();
                                        foreach (NewLauncher.DataContext.CommandFile file in list4)
                                        {
                                            top        = file.ProviderId;
                                            providerId = provider.ProviderId;
                                            if ((top.GetValueOrDefault() == providerId) && top.HasValue)
                                            {
                                                CatalogApi.Settings.CommandFile file2 = new CatalogApi.Settings.CommandFile {
                                                    FileName    = file.FileName,
                                                    FileContent = file.FileContent
                                                };
                                                provider2.CommandFiles.Add(file2);
                                            }
                                        }
                                        provider2.ProviderFiles = new List <CatalogApi.Settings.ProviderFile>();
                                        foreach (NewLauncher.DataContext.ProviderFile file3 in list5)
                                        {
                                            top        = file3.ProviderId;
                                            providerId = provider.ProviderId;
                                            if ((top.GetValueOrDefault() == providerId) && top.HasValue)
                                            {
                                                CatalogApi.Settings.ProviderFile file4 = new CatalogApi.Settings.ProviderFile {
                                                    FileName    = file3.FileName,
                                                    FileExt     = file3.FileExt,
                                                    FileSize    = file3.FileSize.Value,
                                                    FileContent = file3.FileContent
                                                };
                                                provider2.ProviderFiles.Add(file4);
                                            }
                                        }
                                        brand2.Providers.Add(provider2);
                                    }
                                    box2.Brands.Add(brand2);
                                }
                            }
                            item.GroupBoxs.Add(box2);
                        }
                    }
                    graph.Groups.Add(item);
                }
            }
            if (File.Exists(path))
            {
                File.Delete(path);
            }
            Stream serializationStream = File.Create(path);

            new BinaryFormatter().Serialize(serializationStream, graph);
            serializationStream.Close();
            if (force)
            {
                this.ExtractResourcesToFolder(graph);
            }
            return(graph);
        }
Пример #24
0
    private void InitGame(Scene arg0, LoadSceneMode arg1)
    {
        #region  材准备
        var jar = new GroupJar();
        Players = new Player[4];
        GroupSet[] sets = new GroupSet[4];
        Players[0]    = new Player(GameManager.Instance.PlayerManager.PlayerName, jar.Roll());
        CurrentPlayer = Players[0];
        sets[0]       = new GroupSet(Players[0], Cell, Object, true);
        for (int i = 1; i < 4; i++)
        {
            Players[i] = PlayerGenerator.GetPlayer(jar.Roll());
            sets[i]    = new GroupSet(Players[i], Cell, Object);
        }
        #endregion

        #region 构建棋盘
        Vector2      locatorStart = new Vector2(0, 0);
        Vector2      step         = new Vector2(0.5f, 0);
        int          size         = sets.Count();
        int          radius       = 8;
        int          rotation     = -90;
        Vector2      locatorNow   = locatorStart;
        List <Floor> edgeStarts   = new List <Floor>();
        List <Floor> edgeEnds     = new List <Floor>();
        Floor        pre          = null;
        Floor        current      = null;
        for (int i = 0; i < 4; i++)
        {
            //素材集合
            GroupSet set = sets[i];
            //起始点
            locatorNow = locatorStart;
            Vector2 stepNow = Quaternion.Euler(0, 0, rotation * i) * step;
            locatorNow += stepNow;
            current     = new Floor(locatorNow, FloorType.EndPoint, set.Cell, set.Player);
            pre         = current;
            //通关路径
            for (int j = 0; j < radius - 3; j++)
            {
                locatorNow += stepNow;
                current     = new Floor(locatorNow, FloorType.Route, set.Cell, set.Player, null, pre);
                pre.Pre     = current;
                pre         = current;
            }
            //转弯路径
            locatorNow += stepNow;
            var group = set.Player.Group;
            current = new Floor(locatorNow, FloorType.Corner, set.Cell, set.Player, (f, m) => m.Group == f.Player.Group, pre);
            edgeStarts.Add(current);
            pre = current;
            //常规路径
            var index = 0;
            for (int x = 0; x < 13; x++)
            {
                //开头和第八格需要转弯
                switch (x)
                {
                case 0:
                case 7:
                    stepNow = Quaternion.Euler(0, 0, rotation) * stepNow;
                    break;
                }
                locatorNow += stepNow;
                //第七格保留,在第八格后绘制
                if (x == 6)
                {
                    continue;
                }
                var tempSet = sets[(i + index + 1) % size];
                current = new Floor(locatorNow, FloorType.Route, tempSet.Cell, tempSet.Player);//i因为定位到对应的组,Index+1是绘制当前格的偏移量
                if (x == 0)
                {
                    pre.AddNext((f, m) => m.Group != f.Player.Group, current);
                }
                else
                {
                    pre.AddNext(null, current);
                }
                if (x == 12)
                {
                    edgeEnds.Add(current);
                }
                current.Pre = pre;
                pre         = current;
                if (x == 7)
                {
                    //出生点
                    var     tempNow  = locatorNow;
                    Vector2 tempStep = Quaternion.Euler(0, 0, rotation * i) * step;
                    tempNow += tempStep;
                    var startPoint = new Floor(tempNow, FloorType.StartPoint, set.Cell, set.Player, null, pre);
                    //卵点
                    tempNow += tempStep * 2 + (Vector2)(Quaternion.Euler(0, 0, rotation) * tempStep);
                    for (int y = 0; y < 4; y++)
                    {
                        tempStep = Quaternion.Euler(0, 0, rotation) * tempStep;
                        tempNow += tempStep;
                        var spawn = new Floor(tempNow, FloorType.Spawn, set.Cell, set.Player, null, startPoint);
                        new Unit(set.Player, spawn, set.Object);
                    }
                }
                index += 1;
            }
        }
        //连接首尾
        for (int i = 0; i < edgeStarts.Count; i++)
        {
            var preEnd = edgeEnds[i == 0 ? edgeStarts.Count - 1 : i - 1];
            edgeStarts[i].Pre = preEnd;
        }
        for (int i = 0; i < edgeEnds.Count; i++)
        {
            var nextStart = edgeStarts[i == edgeStarts.Count - 1 ? 0 : i + 1];
            edgeEnds[i].AddNext(null, nextStart);
        }
        #endregion

        #region 释放参数
        foreach (var set in sets)
        {
            set.Cell.SetActive(false);
            set.Object.SetActive(false);
        }
        #endregion

        ////绘制行走线路
        //var move = new MoveMent(Players[0].Group, 100);
        //current = Players[0].Units[0].Current;
        //while (move.Vatality>0)
        //{
        //    var next = current.GetNext(move);
        //    current.Display(next);
        //    current = next;
        //    move.Vatality--;
        //}

        //开始游戏
        CurrentPlayerIndex = -1;
        NextPlayer();
    }
Пример #25
0
		public void ForumAddThread_Load(object o, System.EventArgs eventargs)
		{
			#region Init AddComment/AddThread post boxes for users not logged in etc.
			//if (Usr.Current == null)
			//{
			//    AddThreadNotGroupMemberPanel.Style["display"] = "none";
			//    AddThreadLoginPanel.Style["display"] = "";
			//    AddThreadEmailVerifyPanel.Style["display"] = "none";
			//    CommentHtml.Enabled = false;
			//    AddThreadSubjectTextBox.Enabled = false;
			//    AddThreadSubjectTextBox.Text = "You can't post until you are logged in!";
			//    CommentHtml.Text = "You can't post until you are logged in!";
				
			//    AddThreadAdvancedCheckBox.Style["display"] = "none";


			//    return;
			//}
			//else if (!Usr.Current.IsEmailVerified)
			//{
			//    AddThreadNotGroupMemberPanel.Style["display"] = "none";
			//    AddThreadLoginPanel.Style["display"] = "none";
			//    AddThreadEmailVerifyPanel.Style["display"] = "";
			//    CommentHtml.Enabled = false;
			//    AddThreadSubjectTextBox.Enabled = false;
			//    AddThreadSubjectTextBox.Text = "You can't post until your email address has been verified!";
			//    CommentHtml.Text = "You can't post until your email address has been verified!";
				
			//    AddThreadAdvancedCheckBox.Style["display"] = "none";

			//    return;
			//}
			//else 
			if (
				ThreadParentType.Equals(Model.Entities.ObjectType.Group) &&
				(Usr.Current == null || !CurrentForumCheckPermissionRead || !CurrentForumCheckPermissionPost)
				)
			{
				AddThreadNotGroupMemberPanel.Style["display"] = "";
				AddThreadLoginPanel.Style["display"] = "none";
				AddThreadEmailVerifyPanel.Style["display"] = "none";
				CommentHtml.Enabled = false;
				AddThreadSubjectTextBox.Enabled = false;
				AddThreadSubjectTextBox.Text = "You can't post until you're a member of this group!";
				CommentHtml.Text = "You can't post until you're a member of this group!";
				
				AddThreadAdvancedCheckBox.Style["display"] = "none";

				AddThreadNotGroupMemberGroupPageAnchor.HRef = CurrentGroup.UrlApp("join", "type", ((int)ThreadParentType).ToString(), "k", ObjectK.ToString());

				return;
			}
			#endregion

			AddThreadNotGroupMemberPanel.Style["display"] = "none";
			AddThreadLoginPanel.Style["display"] = "none";
			AddThreadEmailVerifyPanel.Style["display"] = "none";
			CommentHtml.Enabled = true;
			AddThreadSubjectTextBox.Enabled = true;

			if (Usr.Current == null)
				AddThreadAdvancedCheckBox.Style["display"] = "none";

			if (Usr.Current != null)
			{
				#region Send to group drop-down
				if (!Page.IsPostBack)
				{
					Query q = new Query();
					if (ContainerPage.Url.HasPromoterObjectFilter)
					{
						#region Promoter options
						q.TableElement = new Join(
							new TableElement(TablesEnum.Group),
							new TableElement(TablesEnum.Brand),
							QueryJoinType.Inner,
							new And(
								new Q(Group.Columns.BrandK, Brand.Columns.K, true),
								new Q(Brand.Columns.PromoterK, ContainerPage.Url.ObjectFilterPromoter.K),
								new Q(Brand.Columns.PromoterStatus, Brand.PromoterStatusEnum.Confirmed)
							)
						);
						if (ThreadParentType.Equals(Model.Entities.ObjectType.Event))
						{
							//Find a brand that is promoted by this promoter, and attached to this event...
							Query qEv = new Query();
							qEv.TableElement = new Join(
								new TableElement(TablesEnum.Brand),
								new TableElement(TablesEnum.EventBrand),
								QueryJoinType.Inner,
								new And(
									new Q(Brand.Columns.K, EventBrand.Columns.BrandK, true),
									new Q(EventBrand.Columns.EventK, ObjectK),
									new Q(Brand.Columns.PromoterK, ContainerPage.Url.ObjectFilterPromoter.K),
									new Q(Brand.Columns.PromoterStatus, Brand.PromoterStatusEnum.Confirmed)
								)
							);
							qEv.ReturnCountOnly = true;
							BrandSet bs = new BrandSet(qEv);
							if (bs.Count > 0)
							{
								q.TableElement = new Join(
									q.TableElement,
									new TableElement(TablesEnum.EventBrand),
									QueryJoinType.Inner,
									new And(
										new Q(Brand.Columns.K, EventBrand.Columns.BrandK, true),
										new Q(EventBrand.Columns.EventK, ObjectK)
									)
								);
							}
						}
						q.OrderBy = new OrderBy(Group.Columns.TotalMembers, OrderBy.OrderDirection.Descending);
						#endregion
					}
					else
					{
						#region User options
						q.QueryCondition = new And(
							new Q(GroupUsr.Columns.UsrK, Usr.Current.K),
							new Q(GroupUsr.Columns.Status, GroupUsr.StatusEnum.Member)
							);
						q.OrderBy = new OrderBy(
							new OrderBy(GroupUsr.Columns.Favourite, OrderBy.OrderDirection.Descending),
							new OrderBy(Group.Columns.Name));
						q.TableElement = Group.UsrMemberJoin;
						#endregion
					}
					q.Columns = new ColumnSet(
						Group.Columns.Name,
						Group.Columns.K,
						Group.Columns.BrandK
					);
					GroupSet gs = new GroupSet(q);
					if (gs.Count > 0)
					{
						AddThreadGroupDropDown.DataTextField = "FriendlyName";
						AddThreadGroupDropDown.DataValueField = "K";
						AddThreadGroupDropDown.DataSource = gs;
						AddThreadGroupDropDown.DataBind();
					}
					else
					{
						AddThreadGroupRadioButtonSpan.Style["display"] = "none";
						AddThreadGroupPrivateCheckBoxSpan.Style["display"] = "none";
					}
				}
				#endregion

				if (ThreadParentType.Equals(Model.Entities.ObjectType.Group))
				{
					#region Add thread advanced tick-boxes
					AddThreadAdvancedPanel.Style["display"] = AddThreadAdvancedCheckBox.Checked ? null : "none";
					//				AddThreadAdvancedCheckBox.Attributes["onclick"] = "document.getElementById('" + AddThreadAdvancedPanel.ClientID + "').style.display=this.checked?'':'none';";

					Cambro.Web.Helpers.ChangeState(AddThreadPublicRadioButtonSpan, AddThreadPublicRadioButton, false);
					Cambro.Web.Helpers.ChangeState(AddThreadPrivateRadioButtonSpan, AddThreadPrivateRadioButton, false);

					AddThreadPublicRadioButton.Checked = false;
					AddThreadGroupRadioButton.Checked = true;
					if (AddThreadGroupDropDown.Items.FindByValue(ObjectK.ToString()) != null)
						AddThreadGroupDropDown.SelectedValue = ObjectK.ToString();

					AddThreadGroupDropDown.Enabled = false;

					AddThreadEventCheckBox.Attributes["onclick"] = "EventDropDown.disabled=!this.checked;";
					AddThreadEventDropDown.Enabled = AddThreadEventCheckBox.Checked;
					AddThreadEventDropDown.Attributes["onchange"] = "if(this[this.selectedIndex].value=='0'){this.selectedIndex=this.selectedIndex-1;}";

					Cambro.Web.Helpers.ChangeState(AddThreadSealedCheckBoxSpan, AddThreadSealedCheckBox, false);

					AddThreadInvitePanel.Style["display"] = AddThreadInviteCheckBox.Checked ? null : "none";
					AddThreadInviteCheckBox.Attributes["onclick"] = "InvitePanel.style.display=this.checked?'':'none';";

					#endregion
					#region Event drop-down
					if (!Page.IsPostBack)
					{
						#region Find 10 future events
						Query qFuture = new Query();
						qFuture.Columns = new ColumnSet(
							Event.FriendlyLinkColumns,
							Event.Columns.TotalComments);
						qFuture.TableElement = Event.JoinTo(Event.CountryAllJoin, CurrentGroup);
						qFuture.TopRecords = 10;
						qFuture.QueryCondition = Event.FutureEventsQueryCondition;
						qFuture.OrderBy = Event.FutureEventOrder;
						EventSet esFuture = new EventSet(qFuture);
						#endregion
						#region Find 10 past events
						Query qPast = new Query();
						qPast.Columns = new ColumnSet(
							Event.FriendlyLinkColumns,
							Event.Columns.TotalComments);
						qPast.TableElement = Event.JoinTo(Event.CountryAllJoin, CurrentGroup);
						qPast.TopRecords = 10;
						qPast.QueryCondition = Event.PreviousEventsQueryCondition;
						qPast.OrderBy = Event.PastEventOrder;
						EventSet esPast = new EventSet(qPast);
						#endregion
						#region Add selected events
						if (esFuture.Count > 0 || esPast.Count > 0)
						{
							foreach (Event e in esFuture)
							{
								AddThreadEventDropDown.Items.Insert(0, new ListItem(e.FriendlyName, e.K.ToString()));
							}
							if (esFuture.Count > 0 && esPast.Count > 0)
							{
								AddThreadEventDropDown.Items.Add(new ListItem(" ", "0"));
							}
							foreach (Event e in esPast)
							{
								AddThreadEventDropDown.Items.Add(new ListItem(e.FriendlyName, e.K.ToString()));
							}
						}
						else
						{
							AddThreadEventCheckBoxSpan.Style["display"] = "none";
						}
						#endregion
					}
					#endregion
				}
				else
				{
					#region Add thread advanced tick-boxes


					AddThreadAdvancedPanel.Style["display"] = AddThreadAdvancedCheckBox.Checked ? null : "none";
					//AddThreadAdvancedCheckBox.Attributes["onclick"] = "document.getElementById('" + AddThreadAdvancedPanel.ClientID + "').style.display=this.checked?'':'none';";

					AddThreadPublicRadioButton.Attributes["onclick"] = "PaintAddThread();";

					AddThreadPrivateRadioButton.Attributes["onclick"] = "PaintAddThread();";

					AddThreadGroupRadioButton.Attributes["onclick"] = "PaintAddThread();";
					AddThreadGroupDropDown.Enabled = AddThreadGroupRadioButton.Checked;

					Cambro.Web.Helpers.ChangeState(AddThreadGroupPrivateCheckBoxSpan, AddThreadGroupPrivateCheckBox, AddThreadGroupRadioButton.Checked);
					AddThreadGroupPrivateCheckBox.Attributes["onclick"] = "changedGroupPrivate = false;";

					AddThreadEventCheckBoxSpan.Style["display"] = "none";

					AddThreadNewsCheckBox.Attributes["onclick"] = "changedNews = false;";
					Cambro.Web.Helpers.ChangeState(AddThreadNewsCheckBoxSpan, AddThreadNewsCheckBox, AddThreadGroupRadioButton.Checked);

					AddThreadSealedCheckBox.Attributes["onclick"] = "changedSealed = false;";
					Cambro.Web.Helpers.ChangeState(AddThreadSealedCheckBoxSpan, AddThreadSealedCheckBox, AddThreadPrivateRadioButton.Checked);

					if (AddThreadPrivateRadioButton.Checked)
						AddThreadInviteCheckBox.Checked = true;
					AddThreadInviteCheckBox.Attributes["onclick"] = "changedInvite = false;InvitePanel.style.display=this.checked?'':'none';";
					Cambro.Web.Helpers.ChangeState(AddThreadInviteCheckBoxSpan, AddThreadInviteCheckBox, !AddThreadPrivateRadioButton.Checked);

					AddThreadInvitePanel.Style["display"] = (AddThreadInviteCheckBox.Checked || AddThreadPrivateRadioButton.Checked) ? null : "none";


					#endregion
				}
			}
		}
Пример #26
0
        private void btn_Submit_Click(object sender, RoutedEventArgs e)
        {
            Random rand = new Random();

            Business.Frame frame = new Business.Frame();
            if (rand.Next(0, 2) == 1)
            {
                frame.Type   = combo_frame_type.Text;
                frame.Colour = combo_frame_colour.Text;
                frame.Size   = combo_frame_size.Text;
            }
            else
            {
                MessageBox.Show("Frame OOS: Adding 2 days to Completion Time");
                frame.Type   = combo_frame_type.Text;
                frame.Colour = combo_frame_colour.Text;
                frame.Size   = combo_frame_size.Text;
                duration    += 2;
            }

            double frameTypeCost   = Double.Parse(((ComboBoxItem)combo_frame_type.SelectedItem).Tag.ToString());
            double frameColourCost = Double.Parse(((ComboBoxItem)combo_frame_colour.SelectedItem).Tag.ToString());
            double frameSizeCost   = Double.Parse(((ComboBoxItem)combo_frame_size.SelectedItem).Tag.ToString());

            frame.Cost = frameTypeCost + frameColourCost + frameSizeCost;

            Gears gears = new Gears();

            if (rand.Next(0, 2) == 1)
            {
                gears.Type = combo_gears.Text;
            }
            else
            {
                MessageBox.Show("Gears OOS: Adding 2 days to Completion Time");
                gears.Type = combo_gears.Text;
                duration  += 2;
            }

            gears.Cost = Double.Parse(((ComboBoxItem)combo_gears.SelectedItem).Tag.ToString());

            Breaks breaks = new Breaks();

            if (rand.Next(0, 2) == 1)
            {
                breaks.Type = combo_breaks.Text;
            }
            else
            {
                MessageBox.Show("Breaks OOS: Adding 2 days to Completion Time");
                breaks.Type = combo_breaks.Text;
                duration   += 2;
            }
            breaks.Cost = Double.Parse(((ComboBoxItem)combo_breaks.SelectedItem).Tag.ToString());

            GroupSet groupSet = new GroupSet();

            groupSet.Gears  = gears;
            groupSet.Breaks = breaks;
            groupSet.Cost   = groupSet.calculateGroupSet(gears, breaks);

            Wheels wheels = new Wheels();

            if (rand.Next(0, 2) == 1)
            {
                wheels.Type = combo_handlebars.Text;
            }
            else
            {
                MessageBox.Show("Wheels OOS: Adding 2 days to Completion Time");
                wheels.Type = combo_handlebars.Text;
                duration   += 2;
            }
            wheels.Cost = Double.Parse(((ComboBoxItem)combo_wheels.SelectedItem).Tag.ToString());

            Handlebars handleBars = new Handlebars();

            if (rand.Next(0, 2) == 1)
            {
                handleBars.Type = combo_handlebars.Text;
            }
            else
            {
                MessageBox.Show("Handlebars OOS: Adding 2 days to Completion Time");
                handleBars.Type = combo_handlebars.Text;
                duration       += 2;
            }
            handleBars.Cost = Double.Parse(((ComboBoxItem)combo_handlebars.SelectedItem).Tag.ToString());

            Saddle saddle = new Saddle();

            if (rand.Next(0, 2) == 1)
            {
                saddle.Type = combo_saddle.Text;
            }
            else
            {
                MessageBox.Show("Saddle OOS: Adding 2 days to Completion Time");
                saddle.Type = combo_saddle.Text;
                duration   += 2;
            }
            saddle.Cost = Double.Parse(((ComboBoxItem)combo_saddle.SelectedItem).Tag.ToString());

            FinishingSet finishingSet = new FinishingSet();

            finishingSet.HandleBars = handleBars;
            finishingSet.Saddle     = saddle;
            finishingSet.Cost       = finishingSet.calculateFinishingSet(handleBars, saddle);

            Bicycle bicycle = new Bicycle();

            bicycle.Frame        = frame;
            bicycle.GroupSet     = groupSet;
            bicycle.FinishingSet = finishingSet;
            bicycle.Cost         = bicycle.calculateFinalCost(frame, groupSet, finishingSet, wheels);
            if (check_warranty.IsChecked == true)
            {
                bicycle.Cost += 50.0;
            }
            bicycle.Duration = duration;
            duration         = 2;

            bikeList.Add(bicycle);
            string output    = "";
            int    bikeNum   = 1;
            double totalCost = 0.0;

            foreach (Bicycle bike in bikeList)
            {
                output += "Bike " + bikeNum + ":\n" + "Cost: " + bike.Cost + "\nCompletion Time: " + bike.Duration + " days.\n\n";
                bikeNum++;
                totalCost += bike.Cost;
            }
            MessageBox.Show(output + "\nTotal Cost: " + totalCost);
        }
Пример #27
0
		private void Page_Load(object sender, System.EventArgs e)
		{
			Response.ContentType = "text/xml";
			Response.Clear();
			Response.Buffer = false;

			XmlTextWriter x = new XmlTextWriter(Response.OutputStream, Encoding.UTF8);
			x.Formatting = Formatting.Indented;
			x.WriteRaw("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");

			string dateFormat = "yyyy-MM-ddTHH:mm:sszzz";

			if (Request.QueryString[0].Equals("index"))
			{
				#region sitemapindex
				x.WriteStartElement("sitemapindex");
				x.WriteAttributeString("xmlns", "http://www.google.com/schemas/sitemap/0.84");

				if (true)
				{
					#region sitemap - countries
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?country");
					Query q = new Query();
					q.QueryCondition = new And(
						new Q(Thread.Columns.Private, false),
						new Q(Thread.Columns.PrivateGroup, false),
						new Q(Thread.Columns.GroupPrivate, false)
						);
					q.OrderBy = new OrderBy(Thread.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					ThreadSet bobset = new ThreadSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat));
					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - place
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?place");

					Query q = new Query();
					q.OrderBy = new OrderBy(Place.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					PlaceSet bobset = new PlaceSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat));

					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - venue
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?venue");

					Query q = new Query();
					q.OrderBy = new OrderBy(Venue.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					VenueSet bobset = new VenueSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat));

					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - event
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?event");

					Query q = new Query();
					q.OrderBy = new OrderBy(Event.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					EventSet bobset = new EventSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat));

					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - thread
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?thread");

					Query q = new Query();
					q.QueryCondition = new And(
						new Q(Thread.Columns.Private, false),
						new Q(Thread.Columns.PrivateGroup, false),
						new Q(Thread.Columns.GroupPrivate, false)
						);
					q.OrderBy = new OrderBy(Thread.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					ThreadSet bobset = new ThreadSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat));

					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - photo
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?photo");

					Query q = new Query();
					q.QueryCondition = Photo.EnabledQueryCondition;
					q.OrderBy = new OrderBy(Photo.Columns.EnabledDateTime, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					PhotoSet bobset = new PhotoSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].EnabledDateTime.ToString(dateFormat));

					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - usr
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?usr");
					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - article
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?article");

					Query q = new Query();
					q.QueryCondition = Article.EnabledQueryCondition;
					q.OrderBy = new OrderBy(Article.Columns.EnabledDateTime, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					ArticleSet bobset = new ArticleSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].EnabledDateTime.ToString(dateFormat));

					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - comp
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?comp");
					x.WriteEndElement();	//sitemap
					#endregion
				}

				if (true)
				{
					#region sitemap - brand
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?brand");

					Query q = new Query();
					q.OrderBy = new OrderBy(Brand.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					BrandSet bobset = new BrandSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat));

					x.WriteEndElement();	//sitemap
					#endregion
				}


				if (true)
				{
					#region sitemap - group
					x.WriteStartElement("sitemap");
					x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?group");

					Query q = new Query();
					q.QueryCondition = new And(
						new Q(Group.Columns.BrandK, 0),
						new Q(Group.Columns.PrivateGroupPage, false));
					q.OrderBy = new OrderBy(Group.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.TopRecords = 1;
					GroupSet bobset = new GroupSet(q);
					if (bobset.Count > 0)
						x.WriteElementString("lastmod", bobset[0].LastPost.Value.ToString(dateFormat));

					x.WriteEndElement();	//sitemap
					#endregion
				}

				x.WriteEndElement();	//sitemapindex
				#endregion
			}
			else
			{
				#region urlset
				x.WriteStartElement("urlset");
				x.WriteAttributeString("xmlns", "http://www.google.com/schemas/sitemap/0.84");

				#region Countries
				if (Request.QueryString[0].Equals("country"))
				{
					if (true)
					{
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com/");
						Query q = new Query();
						q.QueryCondition = new And(
							new Q(Thread.Columns.Private, false),
							new Q(Thread.Columns.PrivateGroup, false),
							new Q(Thread.Columns.GroupPrivate, false)
							);
						q.OrderBy = new OrderBy(Thread.Columns.LastPost, OrderBy.OrderDirection.Descending);
						q.TopRecords = 1;
						ThreadSet bobset = new ThreadSet(q);
						if (bobset.Count > 0)
							x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat));
						x.WriteElementString("changefreq", "hourly");
						x.WriteEndElement();	//url
						#endregion
					}

					if (true)
					{
						Query q = new Query();
						q.QueryCondition = new Q(Country.Columns.TotalEvents, QueryOperator.GreaterThan, 0);
						q.OrderBy = new OrderBy(Country.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
						q.Columns = new ColumnSet(Country.LinkColumns, Country.Columns.TotalEvents);
						if (Vars.DevEnv)
							q.TopRecords = 10;
						CountrySet bobset = new CountrySet(q);
						for (int i = 0; i < bobset.Count; i++)
						{
							Country p = bobset[i];
							#region url
							x.WriteStartElement("url");
							x.WriteElementString("loc", "http://www.dontstayin.com" + p.Url());
							if (p.TotalEvents > 100)
								x.WriteElementString("changefreq", "hourly");
							else if (p.TotalEvents > 20)
								x.WriteElementString("changefreq", "daily");
							else if (p.TotalEvents > 10)
								x.WriteElementString("changefreq", "weekly");
							else
								x.WriteElementString("changefreq", "monthly");
							x.WriteEndElement();	//url
							#endregion
							bobset.Kill(i);
						}
					}
				}
				#endregion

				#region Places
				if (Request.QueryString[0].Equals("place"))
				{
					Query q = new Query();
					q.QueryCondition = new Or(
						new Q(Place.Columns.TotalComments, QueryOperator.GreaterThan, 0),
						new Q(Place.Columns.TotalEvents, QueryOperator.GreaterThan, 0));
					q.OrderBy = new OrderBy(Place.Columns.TotalComments, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Place.LinkColumns, Place.Columns.LastPost);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 40000;
					PlaceSet bobset = new PlaceSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Place p = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + p.Url());
						if (p.LastPost != DateTime.MinValue)
						{
							x.WriteElementString("lastmod", p.LastPost.ToString(dateFormat));
							TimeSpan ts = DateTime.Now.Subtract(p.LastPost);
							if (ts.TotalHours < 24)
								x.WriteElementString("changefreq", "hourly");
							else if (ts.TotalDays < 7)
								x.WriteElementString("changefreq", "daily");
							else if (ts.TotalDays < 30)
								x.WriteElementString("changefreq", "weekly");
							else
								x.WriteElementString("changefreq", "monthly");
						}
						else
							x.WriteElementString("changefreq", "monthly");
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Venues
				if (Request.QueryString[0].Equals("venue"))
				{
					Query q = new Query();
					q.OrderBy = new OrderBy(Venue.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Venue.LinkColumns, Venue.Columns.LastPost, Venue.Columns.TotalEvents);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 40000;
					VenueSet bobset = new VenueSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Venue v = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + v.Url());
						if (v.LastPost != DateTime.MinValue)
						{
							x.WriteElementString("lastmod", v.LastPost.ToString(dateFormat));
							TimeSpan ts = DateTime.Now.Subtract(v.LastPost);
							if (ts.TotalHours < 24)
								x.WriteElementString("changefreq", "hourly");
							else if (ts.TotalDays < 7)
								x.WriteElementString("changefreq", "daily");
							else if (ts.TotalDays < 30)
								x.WriteElementString("changefreq", "weekly");
							else
								x.WriteElementString("changefreq", "monthly");
						}
						else if (v.TotalEvents > 10)
							x.WriteElementString("changefreq", "weekly");
						else
							x.WriteElementString("changefreq", "monthly");

						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Events
				if (Request.QueryString[0].Equals("event"))
				{
					Query q = new Query();
					q.OrderBy = new OrderBy(Event.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Event.LinkColumns, Event.Columns.LastPost, Event.Columns.DateTime);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 40000;
					EventSet bobset = new EventSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Event ev = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + ev.Url());
						if (ev.LastPost != DateTime.MinValue)
						{
							x.WriteElementString("lastmod", ev.LastPost.ToString(dateFormat));
							TimeSpan ts = DateTime.Now.Subtract(ev.LastPost);
							if (ts.TotalHours < 24)
								x.WriteElementString("changefreq", "hourly");
							else if (ts.TotalDays < 7)
								x.WriteElementString("changefreq", "daily");
							else if (ts.TotalDays < 30)
								x.WriteElementString("changefreq", "weekly");
							else
								x.WriteElementString("changefreq", "monthly");
						}
						else
							x.WriteElementString("changefreq", "monthly");
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Threads
				if (Request.QueryString[0].Equals("thread"))
				{
					Query q = new Query();
					q.QueryCondition = new And(
						new Q(Thread.Columns.Private, false),
						new Q(Thread.Columns.PrivateGroup, false),
						new Q(Thread.Columns.GroupPrivate, false)
					);
					q.Columns = new ColumnSet(Thread.Columns.K, Thread.Columns.UrlFragment, Thread.Columns.TotalComments, Thread.Columns.LastPost);
					q.OrderBy = new OrderBy(Thread.Columns.LastPost, OrderBy.OrderDirection.Descending);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 40000;
					ThreadSet bobset = new ThreadSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Thread t = bobset[i];
						#region url
						x.WriteStartElement("url");
						if (t.LastPage == 1)
							x.WriteElementString("loc", "http://www.dontstayin.com" + t.Url());
						else
							x.WriteElementString("loc", "http://www.dontstayin.com" + t.Url("c", t.LastPage.ToString()));
						x.WriteElementString("lastmod", t.LastPost.ToString(dateFormat));
						TimeSpan ts = DateTime.Now.Subtract(t.LastPost);
						if (ts.TotalHours < 24)
							x.WriteElementString("changefreq", "hourly");
						else if (ts.TotalDays < 7)
							x.WriteElementString("changefreq", "daily");
						else if (ts.TotalDays < 30)
							x.WriteElementString("changefreq", "weekly");
						else
							x.WriteElementString("changefreq", "monthly");
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Photos
				if (Request.QueryString[0].Equals("photo"))
				{
					Query q = new Query();
					q.QueryCondition = Photo.EnabledQueryCondition;
					q.Columns = new ColumnSet(Photo.Columns.K, Photo.Columns.UrlFragment, Photo.Columns.EventK, Photo.Columns.ArticleK);
					q.OrderBy = new OrderBy(Photo.Columns.EnabledDateTime, OrderBy.OrderDirection.Descending);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 50000;
					PhotoSet bobset = new PhotoSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Photo p = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + p.Url());
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Usrs
				if (Request.QueryString[0].Equals("usr"))
				{
					Query q = new Query();
					q.QueryCondition = new And(
						new Q(Usr.Columns.IsSkeleton, false),
						new Q(Usr.Columns.IsEmailVerified, true),
						new Or(
						new Q(Usr.Columns.Pic, QueryOperator.NotEqualTo, Guid.Empty),
						new Q(Usr.Columns.CommentCount, QueryOperator.NotEqualTo, 0)
						)
					);
					q.Columns = new ColumnSet(Usr.Columns.NickName);
					q.OrderBy = new OrderBy(Usr.Columns.DateTimeLastPageRequest, OrderBy.OrderDirection.Descending);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 50000;
					UsrSet bobset = new UsrSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Usr u = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + u.Url());
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Articles
				if (Request.QueryString[0].Equals("article"))
				{
					Query q = new Query();
					q.QueryCondition = Article.EnabledQueryCondition;
					q.Columns = new ColumnSet(Article.Columns.UrlFragment,
					Article.Columns.ParentObjectK,
					Article.Columns.ParentObjectType, Article.Columns.K);
					q.OrderBy = new OrderBy(Article.Columns.EnabledDateTime, OrderBy.OrderDirection.Descending);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 50000;
					ArticleSet bobset = new ArticleSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Article a = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + a.Url());
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Competitions
				if (Request.QueryString[0].Equals("comp"))
				{
					Query q = new Query();
					q.QueryCondition = new Q(Comp.Columns.Status, Comp.StatusEnum.Enabled);
					q.Columns = new ColumnSet(Comp.Columns.K);
					q.OrderBy = new OrderBy(Comp.Columns.DateTimeClose, OrderBy.OrderDirection.Descending);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 50000;
					CompSet bobset = new CompSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Comp c = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + c.Url());
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Brands
				if (Request.QueryString[0].Equals("brand"))
				{
					Query q = new Query();
					q.OrderBy = new OrderBy(Brand.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Brand.LinkColumns, Brand.Columns.LastPost);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 40000;
					BrandSet bobset = new BrandSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Brand b = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + b.Url());
						if (b.LastPost > DateTime.MinValue)
						{
							x.WriteElementString("lastmod", b.LastPost.ToString(dateFormat));
							TimeSpan ts = DateTime.Now.Subtract(b.LastPost);
							if (ts.TotalHours < 24)
								x.WriteElementString("changefreq", "hourly");
							else if (ts.TotalDays < 7)
								x.WriteElementString("changefreq", "daily");
							else if (ts.TotalDays < 30)
								x.WriteElementString("changefreq", "weekly");
							else
								x.WriteElementString("changefreq", "monthly");
						}
						else
							x.WriteElementString("changefreq", "monthly");
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				#region Groups
				if (Request.QueryString[0].Equals("group"))
				{
					Query q = new Query();
					q.QueryCondition = new And(
						new Q(Group.Columns.BrandK, 0),
						new Q(Group.Columns.PrivateGroupPage, false));
					q.OrderBy = new OrderBy(Group.Columns.LastPost, OrderBy.OrderDirection.Descending);
					q.Columns = new ColumnSet(Group.Columns.BrandK, Group.Columns.UrlName, Group.Columns.LastPost);
					if (Vars.DevEnv)
						q.TopRecords = 10;
					else
						q.TopRecords = 40000;
					GroupSet bobset = new GroupSet(q);
					for (int i = 0; i < bobset.Count; i++)
					{
						Group g = bobset[i];
						#region url
						x.WriteStartElement("url");
						x.WriteElementString("loc", "http://www.dontstayin.com" + g.Url());
						if (g.LastPost.HasValue && g.LastPost > DateTime.MinValue)
						{
							x.WriteElementString("lastmod", g.LastPost.Value.ToString(dateFormat));
							TimeSpan ts = DateTime.Now.Subtract(g.LastPost.Value);
							if (ts.TotalHours < 24)
								x.WriteElementString("changefreq", "hourly");
							else if (ts.TotalDays < 7)
								x.WriteElementString("changefreq", "daily");
							else if (ts.TotalDays < 30)
								x.WriteElementString("changefreq", "weekly");
							else
								x.WriteElementString("changefreq", "monthly");
						}
						else
							x.WriteElementString("changefreq", "monthly");
						x.WriteEndElement();	//url
						#endregion
						bobset.Kill(i);
					}
				}
				#endregion

				x.WriteEndElement();	//urlset
				#endregion
			}
			x.Flush();
			x.Close();
			Response.End();

		}
Пример #28
0
 public void AddGroup(GroupSet groupSet)
 {
     context.GroupSet.Add(groupSet);
     context.SaveChanges();
 }
Пример #29
0
 public void EditGroup(GroupSet groupSet)
 {
     context.GroupSet.AddOrUpdate(groupSet);
     context.SaveChanges();
 }
Пример #30
0
		void Save(bool RedirectToPic)
		{
			if (IsEdit)
			{
				string newName = Cambro.Web.Helpers.Strip(NameTextBox.Text);
				bool changedName = !CurrentGroup.Name.Equals(newName);
				CurrentGroup.Name = newName;

				CurrentGroup.Description = Cambro.Web.Helpers.Strip(DescriptionTextBox.Text);
				CurrentGroup.PostingRules = Cambro.Web.Helpers.Strip(RulesTextBox.Text);
				CurrentGroup.LongDescriptionHtml = IntroHtml.GetHtml();

				bool newPrivateChat;
				if (GroupPagePrivate.Checked)
				{
					CurrentGroup.PrivateGroupPage = true;
					CurrentGroup.PrivateMemberList = true;
					newPrivateChat = true;
				}
				else
				{
					CurrentGroup.PrivateGroupPage = false;
					CurrentGroup.PrivateMemberList = MembersListPrivate.Checked;
					newPrivateChat = ChatForumPrivate.Checked;
				}
				bool changedPrivateChat = newPrivateChat != CurrentGroup.PrivateChat;
				CurrentGroup.PrivateChat = newPrivateChat;

				if (MembershipMember.Checked)
					CurrentGroup.Restriction = Group.RestrictionEnum.Member;
				else if (MembershipModerator.Checked)
					CurrentGroup.Restriction = Group.RestrictionEnum.Moderator;
				else
					CurrentGroup.Restriction = Group.RestrictionEnum.None;

				int newTheme;
				if (ThemesRadioButtonList.SelectedValue.Equals("18"))
					newTheme = 0;
				else
				{
					Theme t = new Theme(int.Parse(ThemesRadioButtonList.SelectedValue));
					newTheme = t.K;
				}
				bool changedTheme = newTheme != CurrentGroup.ThemeK;
				CurrentGroup.ThemeK = newTheme;


				int newCountry;
				int oldCountry = CurrentGroup.CountryK;
				if (LocationTypeCountry.Checked || LocationTypePlace.Checked)
				{
					Country c = new Country(int.Parse(LocationCountryDropDown.SelectedValue));
					if (!c.Enabled)
						throw new Exception("invalid country!");
					newCountry = c.K;
				}
				else
				{
					newCountry = 0;
				}
				bool changedCountry = CurrentGroup.CountryK != newCountry;
				CurrentGroup.CountryK = newCountry;

				int newPlace;
				int oldPlace = CurrentGroup.PlaceK;
				if (LocationTypePlace.Checked)
				{
					Place p = new Place(int.Parse(LocationPlaceDropDown.SelectedValue));
					if (!p.Enabled || p.CountryK != CurrentGroup.CountryK)
						throw new Exception("invalid place!");
					newPlace = p.K;
				}
				else
				{
					newPlace = 0;
				}
				bool changedPlace = CurrentGroup.PlaceK != newPlace;
				CurrentGroup.PlaceK = newPlace;

				int newMusicType;
				if (CurrentGroup.ThemeK == 1 || CurrentGroup.ThemeK == 2)
				{
					if (!MusicTypesRadioButtonList.SelectedValue.Equals("0"))
					{
						MusicType mt = new MusicType(int.Parse(MusicTypesRadioButtonList.SelectedValue));
						if (!(mt.ParentK == 0 || mt.ParentK == 1))
							throw new Exception("Invalid music type");
						newMusicType = mt.K;
					}
					else
					{
						newMusicType = 0;
					}
				}
				else
				{
					newMusicType = 0;
				}
				bool changedMusic = CurrentGroup.MusicTypeK != newMusicType;
				CurrentGroup.MusicTypeK = newMusicType;

				if (changedName)
					CurrentGroup.CreateUniqueUrlName(false);

				Transaction transaction = null;//new Transaction();
				try
				{
					if (changedPrivateChat)
					{
						Update update = new Update();
						update.Table = TablesEnum.Thread;
						update.Changes.Add(new Assign(Thread.Columns.PrivateGroup, CurrentGroup.PrivateChat));
						update.Where = new Q(Thread.Columns.GroupK, CurrentGroup.K);
						update.Run(transaction);
					}

					if (changedTheme)
					{
						Update update = new Update();
						update.Table = TablesEnum.Thread;
						update.Changes.Add(new Assign(Thread.Columns.ThemeK, CurrentGroup.ThemeK));
						update.Where = new Q(Thread.Columns.GroupK, CurrentGroup.K);
						update.Run(transaction);
					}

					if (changedCountry)
					{
						Update update = new Update();
						update.Table = TablesEnum.Thread;
						update.Changes.Add(new Assign(Thread.Columns.CountryK, CurrentGroup.CountryK));
						update.Where = new And(new Q(Thread.Columns.ParentObjectType, Model.Entities.ObjectType.Group), new Q(Thread.Columns.ParentObjectK, CurrentGroup.K));
						update.Run(transaction);
					}

					if (changedPlace)
					{
						Update update = new Update();
						update.Table = TablesEnum.Thread;
						update.Changes.Add(new Assign(Thread.Columns.PlaceK, CurrentGroup.PlaceK));
						update.Where = new And(new Q(Thread.Columns.ParentObjectType, Model.Entities.ObjectType.Group), new Q(Thread.Columns.ParentObjectK, CurrentGroup.K));
						update.Run(transaction);

						if (oldPlace > 0)
						{
							Place oldP = new Place(oldPlace);
							oldP.UpdateTotalComments(null);
						}
						if (newPlace > 0)
						{
							Place newP = new Place(newPlace);
							newP.UpdateTotalComments(null);
						}
					}

					if (changedMusic)
					{
						Update update = new Update();
						update.Table = TablesEnum.Thread;
						update.Changes.Add(new Assign(Thread.Columns.MusicTypeK, CurrentGroup.MusicTypeK));
						update.Where = new Q(Thread.Columns.GroupK, CurrentGroup.K);
						update.Run(transaction);
					}

					if (changedName)
					{
						Utilities.UpdateChildUrlFragmentsJob job = new Utilities.UpdateChildUrlFragmentsJob(Model.Entities.ObjectType.Group, CurrentGroup.K, true);
						job.ExecuteAsynchronously();
					}
					CurrentGroup.Update(transaction);

					//transaction.Commit();
				}
				catch (Exception ex)
				{
					//transaction.Rollback();
					throw ex;
				}
				finally
				{
					//transaction.Close();
				}
				if (RedirectToPic)
				{
					if (ContainerPage.Url["promoterk"].IsInt)
						Response.Redirect(CurrentGroup.UrlApp("edit", "pic", "", "promoterk", ContainerPage.Url["promoterk"]));
					else
						Response.Redirect(CurrentGroup.UrlApp("edit", "pic", ""));
				}
				else
				{
					RedirectSaved();
				}


			}
			else
			{
				GroupSet gsDup = new GroupSet(new Query(new Q(Group.Columns.DuplicateGuid, (Guid)ContainerPage.ViewStatePublic["GroupDuplicateGuid"])));
				if (gsDup.Count != 0)
				{
					Response.Redirect(gsDup[0].UrlApp("edit", "pic", ""));
				}
				else
				{
					Group g = new Group();
					g.Name = Cambro.Web.Helpers.Strip(NameTextBox.Text);
					g.Description = Cambro.Web.Helpers.Strip(DescriptionTextBox.Text);

					g.LongDescriptionHtml = IntroHtml.GetHtml();
					
					g.PostingRules = Cambro.Web.Helpers.Strip(RulesTextBox.Text, true, true, false, true);
					g.DateTimeCreated = DateTime.Now;
					g.PrivateGroupPage = GroupPagePrivate.Checked;
					if (GroupPagePrivate.Checked)
					{
						g.PrivateMemberList = true;
						g.PrivateChat = true;
					}
					else
					{
						g.PrivateMemberList = MembersListPrivate.Checked;
						g.PrivateChat = ChatForumPrivate.Checked;
					}

					if (MembershipMember.Checked)
						g.Restriction = Group.RestrictionEnum.Member;
					else if (MembershipModerator.Checked)
						g.Restriction = Group.RestrictionEnum.Moderator;
					else
						g.Restriction = Group.RestrictionEnum.None;

					if (ThemesRadioButtonList.SelectedValue.Equals("18"))
						g.ThemeK = 0;
					else
					{
						Theme t = new Theme(int.Parse(ThemesRadioButtonList.SelectedValue));
						g.ThemeK = t.K;
					}

					if (LocationTypeCountry.Checked || LocationTypePlace.Checked)
					{
						Country c = new Country(int.Parse(LocationCountryDropDown.SelectedValue));
						if (!c.Enabled)
							throw new Exception("invalid country!");
						g.CountryK = c.K;
					}
					if (LocationTypePlace.Checked)
					{
						Place p = new Place(int.Parse(LocationPlaceDropDown.SelectedValue));
						if (!p.Enabled || p.CountryK != g.CountryK)
							throw new Exception("invalid place!");
						g.PlaceK = p.K;
					}

					if (g.ThemeK == 1 || g.ThemeK == 2)
					{
						if (!MusicTypesRadioButtonList.SelectedValue.Equals("0"))
						{
							MusicType mt = new MusicType(int.Parse(MusicTypesRadioButtonList.SelectedValue));
							if (!(mt.ParentK == 0 || mt.ParentK == 1))
								throw new Exception("Invalid music type");
							g.MusicTypeK = mt.K;
						}
					}

					g.CreateUniqueUrlName(false);

					g.DuplicateGuid = (Guid)ContainerPage.ViewStatePublic["GroupDuplicateGuid"];
					g.EmailOnAllThreads = false;

					g.Update();

					g.ChangeUsr(false, Usr.Current.K, true, true, true, true, Bobs.GroupUsr.StatusEnum.Member, DateTime.Now, true);

					Response.Redirect(g.UrlApp("edit", "pic", ""));
				}
			}
		}
Пример #31
0
        public LauncherSettings DownloadSettings(bool force, bool FullLoad = true)
        {
            string           nameFileDbSerialize = new CatalogApi.Settings.File(ConfigurationManager.AppSettings["FileDbSerialize"]).Name;
            LauncherSettings graph = new LauncherSettings();

            // режим "force" принажатии кнопки брэнда
            if ((force == true) &&
                (System.IO.File.Exists(nameFileDbSerialize) == true))
            {
                System.IO.File.Delete(nameFileDbSerialize);
            }
            else
            {
                ;
            }

            if (System.IO.File.Exists(nameFileDbSerialize) == true)
            {
                // для режима forse=false - прочитать и вернуть копию БД
                Stream          stream    = System.IO.File.OpenRead(nameFileDbSerialize);
                BinaryFormatter formatter = new BinaryFormatter();
                graph = (LauncherSettings)formatter.Deserialize(stream);
                stream.Close();

                return(graph);
            }
            else
            {
                ;
            }

            #region чтение БД, заполнение объектов значениями
            using (AvtoritetEntities entities = new AvtoritetEntities())
            {
                List <NewLauncher.DataContext.Brand> list = (from r in entities.Brand
                                                             where r.Enable
                                                             orderby r.NameAndFolder
                                                             select r).ToList <NewLauncher.DataContext.Brand>();
                List <Provider> list2 = (from r in entities.Provider
                                         where r.Enable & FullLoad
                                         orderby r.Order
                                         select r).ToList <Provider>();
                List <ProviderAccount> list3 = (from t in entities.ProviderAccount
                                                where t.Enable & FullLoad
                                                select t).ToList <ProviderAccount>();
                List <NewLauncher.DataContext.CommandFile> list4 = (from t in entities.CommandFile
                                                                    where FullLoad
                                                                    select t).ToList <NewLauncher.DataContext.CommandFile>();
                List <NewLauncher.DataContext.ProviderFile> list5 = (from t in entities.ProviderFile
                                                                     where FullLoad
                                                                     select t).ToList <NewLauncher.DataContext.ProviderFile>();
                List <Group> list6 = (from t in entities.Group
                                      where t.Enable
                                      orderby t.Order
                                      select t).ToList <Group>();
                List <NewLauncher.DataContext.GroupBox> list7 = (from r in entities.GroupBox
                                                                 where r.Enable
                                                                 orderby r.Title
                                                                 select r).ToList <NewLauncher.DataContext.GroupBox>();
                foreach (Group group in list6)
                {
                    GroupSet item = new GroupSet {
                        Name      = group.Name,
                        Width     = group.Width.Value,
                        Height    = group.Height.Value,
                        GroupBoxs = new List <CatalogApi.Settings.GroupBox>()
                    };
                    foreach (NewLauncher.DataContext.GroupBox box in list7)
                    {
                        if (box.GroupId == group.GroupId)
                        {
                            CatalogApi.Settings.GroupBox box2 = new CatalogApi.Settings.GroupBox {
                                Left          = box.Left.Value,
                                Top           = box.Top.Value,
                                Width         = box.Width.Value,
                                Height        = box.Height.Value,
                                Title         = box.Title,
                                VisibleBorder = box.VisibleBorder.Value,
                                Brands        = new List <CatalogApi.Settings.Brand>()
                            };
                            foreach (NewLauncher.DataContext.Brand brand in list)
                            {
                                if (brand.GroupBoxId == box.GroupBoxId)
                                {
                                    CatalogApi.Settings.Brand brand2 = new CatalogApi.Settings.Brand {
                                        NameAndFolder = brand.NameAndFolder,
                                        IconPath      = brand.IconPath,
                                        IconPath2     = brand.IconPath2,
                                        IconPathImg   = brand.IconPathImg,
                                        IconPath2Img  = brand.IconPath2Img
                                    };
                                    int?top = brand.Top;
                                    brand2.Top         = top.HasValue ? top.GetValueOrDefault() : 0;
                                    top                = brand.Left;
                                    brand2.Left        = top.HasValue ? top.GetValueOrDefault() : 0;
                                    top                = brand.Width;
                                    brand2.Width       = top.HasValue ? top.GetValueOrDefault() : 0;
                                    top                = brand.Height;
                                    brand2.Height      = top.HasValue ? top.GetValueOrDefault() : 0;
                                    brand2.BrandId     = brand.BrandId;
                                    brand2.ButtonStyle = brand.ButtonStyle;
                                    brand2.MenuWindow  = brand.MenuWindow.Value;
                                    brand2.Providers   = new List <BrandProvider>();
                                    foreach (Provider provider in list2)
                                    {
                                        int providerId;
                                        if (provider.BrandId != brand.BrandId)
                                        {
                                            continue;
                                        }
                                        BrandProvider provider2 = new BrandProvider {
                                            Uri        = provider.Uri.Trim(),
                                            IconPath   = provider.IconPath,
                                            Title      = provider.Title,
                                            Commands   = provider.commandcontent,
                                            ProviderId = provider.ProviderId,
                                            Login      = "",
                                            Password   = ""
                                        };
                                        foreach (ProviderAccount account in list3)
                                        {
                                            if (account.ProviderId == provider.ProviderId)
                                            {
                                                provider2.Login    = (account != null) ? account.Login.Trim() : string.Empty;
                                                provider2.Password = (account != null) ? account.Password.Trim() : string.Empty;
                                                break;
                                            }
                                        }
                                        provider2.CommandFiles = new List <CatalogApi.Settings.CommandFile>();
                                        foreach (NewLauncher.DataContext.CommandFile file in list4)
                                        {
                                            top        = file.ProviderId;
                                            providerId = provider.ProviderId;
                                            if ((top.GetValueOrDefault() == providerId) && top.HasValue)
                                            {
                                                CatalogApi.Settings.CommandFile file2 = new CatalogApi.Settings.CommandFile {
                                                    FileName    = file.FileName,
                                                    FileContent = file.FileContent
                                                };
                                                provider2.CommandFiles.Add(file2);
                                            }
                                        }
                                        provider2.ProviderFiles = new List <CatalogApi.Settings.ProviderFile>();
                                        foreach (NewLauncher.DataContext.ProviderFile file3 in list5)
                                        {
                                            top        = file3.ProviderId;
                                            providerId = provider.ProviderId;
                                            if ((top.GetValueOrDefault() == providerId) && top.HasValue)
                                            {
                                                CatalogApi.Settings.ProviderFile file4 = new CatalogApi.Settings.ProviderFile {
                                                    FileName    = file3.FileName,
                                                    FileExt     = file3.FileExt,
                                                    FileSize    = file3.FileSize.Value,
                                                    FileContent = file3.FileContent
                                                };
                                                provider2.ProviderFiles.Add(file4);
                                            }
                                        }
                                        brand2.Providers.Add(provider2);
                                    }
                                    box2.Brands.Add(brand2);
                                }
                            }
                            item.GroupBoxs.Add(box2);
                        }
                    }
                    graph.Groups.Add(item);
                }
            }
            #endregion

            if (System.IO.File.Exists(nameFileDbSerialize) == true)
            {
                //??? никогда не выполняется
                // , если forse=true файл будет удален
                // , если forse=false произодет возврат значения и выход из функции
                System.IO.File.Delete(nameFileDbSerialize);
            }
            else
            {
                ;
            }

            Stream serializationStream = System.IO.File.Create(nameFileDbSerialize);
            new BinaryFormatter().Serialize(serializationStream, graph);
            serializationStream.Close();

            if (force == true)
            {
                this.ExtractResourcesToFolder(graph);
            }
            else
            {
                ;
            }

            return(graph);
        }
            public void update(GameTime gameTime)
            {
                var _playerContainer = _scene._playerContainer;

                _hitGroups.Clear();

                var gameRect = _scene.gameRect;

                for (int i = 0; i < _groupRects.Count; i++)
                {
                    var rect  = _groupRects[i];
                    var group = new GroupSet();
                    group.bounds = rect;
                    _hitGroups.Add(group);
                }

                for (int i = 0; i < _playerContainer.children.Count;)
                {
                    var snake = (SnakeSprite)_playerContainer.children[i];

                    var snakeHeadBounds = snake.getHeadBounds();
                    //  Console.WriteLine("{0} snakeBounds={1}", snake, snakeBounds);

                    if (!_scene._gameRect.IntersectsWith(snakeHeadBounds))
                    {
                        _playerContainer.children.RemoveAt(i);

                        dispatchDeadEvent(snake);
                        continue;
                    }

                    for (int j = 0; j < _hitGroups.Count; j++)
                    {
                        var g = _hitGroups[j];

                        if (g.bounds.IntersectsWith(snake.calcHitBounds()))
                        {
                            g.snakes.Add(snake);
                        }
                    }

                    i++;
                }

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

                totalLoopCounter = 0;
                var activeTime = gameTime.TotalGameTime - TimeSpan.FromSeconds(3);

                for (int j = 0; j < _hitGroups.Count; j++)
                {
                    var g = _hitGroups[j];

                    if (g.snakes.Count > 0)
                    {
                        List <int> deadResultList = new List <int>();
                        int        loopCounter;
                        hitTestList(activeTime, g.snakes, allDeadList, deadResultList, out loopCounter);

                        totalLoopCounter += loopCounter;

                        if (deadResultList.Count > 0)
                        {
                            string deadText = String.Join(",", (from x in deadResultList select x.ToString()).ToArray());

                            //  Console.WriteLine("GROUP loopCounter={3} snake={0} rect={1} deadList={2}", g.snakes.Count, g.bounds, deadText, loopCounter);


                            allDeadList.AddRange(deadResultList);
                        }
                    }
                }

                // Console.WriteLine("Snake totalLoopCounter={0} ", totalLoopCounter);
                if (allDeadList.Count > 0)
                {
                    allDeadList = allDeadList.Distinct().ToList();

                    for (int i = 0; i < _playerContainer.children.Count;)
                    {
                        var snake = (SnakeSprite)_playerContainer.children[i];

                        if (allDeadList.Contains(snake.id))
                        {
                            _playerContainer.children.RemoveAt(i);
                            _scene._snakeById.Remove(snake.id);
                            dispatchDeadEvent(snake);
                            continue;
                        }

                        ++i;
                    }
                }
            }
Пример #33
0
		private void GroupsPanel_Load(object o, EventArgs e)
		{
			if (!(Discussable == null
				|| Discussable.ObjectType == Model.Entities.ObjectType.Country
				|| Discussable.ObjectType == Model.Entities.ObjectType.Place))
			{
				GroupsPanel.Visible = false;
				return;
			}

			Q RelevanceQ = new Q(true);
			if (Discussable != null && Discussable.UsedDiscussable is Country)
				RelevanceQ = new Q(Group.Columns.CountryK, Discussable.UsedDiscussable.K);
			else if (Discussable != null && Discussable.UsedDiscussable is Place)
				RelevanceQ = new Q(Group.Columns.PlaceK, Discussable.UsedDiscussable.K);

			Query q = new Query();
			q.Columns = Templates.Groups.Latest.Columns;

			q.QueryCondition = new And(
				new Or(
					new Q(Group.Columns.TotalComments, QueryOperator.GreaterThan, 20),
					new Q(Group.Columns.TotalMembers, QueryOperator.GreaterThan, 10)),
				RelevanceQ,
				new Q(Group.Columns.BrandK, 0),
				new Q(Group.Columns.Pic, QueryOperator.NotEqualTo, Guid.Empty),
				new Q(Group.Columns.PrivateGroupPage, false)
			);
			q.OrderBy = new OrderBy(OrderBy.OrderDirection.Random);
			q.TopRecords = Items;

			GroupSet gsGroup = new GroupSet(q);

			if (gsGroup.Count == 0)
				GroupsPanel.Visible = false;
			else
			{
				GroupsDataList.DataSource = gsGroup;
				GroupsDataList.ItemTemplate = this.LoadTemplate("/Templates/Groups/Latest.ascx");
				GroupsDataList.DataBind();
				if (Discussable == null)
					GroupsAnchor.HRef = "/groups";
				else if (Discussable.UsedDiscussable is IObjectPage && gsGroup.Count == Items)
					GroupsAnchor.HRef = ((IObjectPage)Discussable.UsedDiscussable).UrlApp("groups");
				else
				{
					GroupsDiv.Visible = false;
					GroupsPanelInner.Attributes["class"] = "LatestPanel Big CleanLinks";
				}
			}

		}
Пример #34
0
		void BindFavouriteGroups()
		{
			Query q = new Query();
			q.TableElement = new Join(
				new TableElement(TablesEnum.Group),
				new TableElement(TablesEnum.GroupUsr),
				QueryJoinType.Inner,
				new And(
					new Q(Group.Columns.K, GroupUsr.Columns.GroupK, true),
					new Q(GroupUsr.Columns.Favourite, true),
					new Q(GroupUsr.Columns.UsrK, ThisUsr.K),
					new Q(GroupUsr.Columns.Status, GroupUsr.StatusEnum.Member)
				)
			);
			q.QueryCondition = new And(
				new Q(Group.Columns.PrivateGroupPage, false),
				new Q(Group.Columns.PrivateMemberList, false));
			q.Columns = Templates.Groups.Latest.Columns;
			q.OrderBy = new OrderBy(new OrderBy(GroupUsr.Columns.Moderator, OrderBy.OrderDirection.Descending), new OrderBy(OrderBy.OrderDirection.Random));
			q.TopRecords = 6;
			GroupSet gs = new GroupSet(q);
			if (gs.Count > 0)
			{
				FavouriteGroupsDataList.DataSource = gs;
				FavouriteGroupsDataList.ItemTemplate = this.LoadTemplate("/Templates/Groups/Latest.ascx");
				FavouriteGroupsDataList.DataBind();
			}
			else
				FavouriteGroupsPanel.Visible = false;
		}
Пример #35
0
        private static GroupSet CreateTestGroup(string name)
        {
            var groupSet = new GroupSet {
                Name = name
            };

            //groupSet.Brands.Add(new Brand
            //{
            // NameAndFolder = "Infinity",
            // IconPath = "Infinity.ico",
            // Providers = new[]
            //	{
            //		new BrandProvider
            //		{
            //			Title = "Infinity - локально",
            //			IconPath = "Infinity.ico",
            //			Uri = "run.bat"
            //		},
            //		new BrandProvider
            //		{
            //			Title = "Infinity - partslink24",
            //			IconPath = "Infinity.ico",
            //			Uri = "https://www.partslink24.com/partslink24/launchCatalog.do?service=audi_parts"
            //		}
            //	}
            //});

            //groupSet.Brands.Add(new Brand
            //{
            // NameAndFolder = "BMW",
            // IconPath = "BMW.ico",
            // Providers = new[]
            //	{
            //		new BrandProvider
            //		{
            //			Title = "BMW - локально",
            //			Uri = "run.bat",
            //			IconPath = "BMW.ico"
            //		},
            //		new BrandProvider
            //		{
            //			Title = "BWM - partlink24",
            //			Uri = "https://www.partslink24.com/partslink24/launchCatalog.do?service=bmw_parts",
            //			IconPath = "BMW.ico"
            //		}
            //	}
            //});

            //groupSet.Brands.Add(new Brand
            //{
            // NameAndFolder = "Gm",
            // IconPath = "GM.ico",
            // Providers = new[]
            //	{
            //		new BrandProvider
            //		{
            //			Title = "GM - локально",
            //			Uri = "run.bat",
            //			IconPath = "GM.ico"
            //		},
            //		new BrandProvider
            //		{
            //			Title = "GM - онлайн",
            //			Uri = "https://www.partslink24.com/partslink24/launchCatalog.do?service=lancia_parts",
            //			IconPath = "GM.ico"
            //		}
            //	}
            //});

            //groupSet.Brands.Add(new Brand
            //{
            // NameAndFolder = "Nissan",
            // IconPath = "Nissan.ico",
            // Providers = new[]
            //	{
            //		new BrandProvider
            //		{
            //			Title = "Nissan - локально",
            //			Uri = "run.bat",
            //			IconPath = "Nissan.ico"
            //		},
            //		new BrandProvider
            //		{
            //			Title = "Nissan - онлайн",
            //			Uri = "https://www.partslink24.com/partslink24/launchCatalog.do?service=nissan_parts",
            //			IconPath = "Nissan.ico"
            //		}
            //	}
            //});

            //groupSet.Brands.Add(new Brand
            //{
            // NameAndFolder = "Fiat",
            // IconPath = "Fiat.ico",
            // Providers = new[]
            //	{
            //		new BrandProvider
            //		{
            //			Title = "Fiat - локально",
            //			Uri = "run.bat",
            //			IconPath = "Fiat.ico"
            //		},
            //		new BrandProvider
            //		{
            //			Title = "Fiat - онлайн",
            //			Uri = "https://www.partslink24.com/partslink24/launchCatalog.do?service=fiatp_parts",
            //			IconPath = "Fiat.ico"
            //		}
            //	}
            //});

            return(groupSet);
        }
Пример #36
0
		public void CopyPics(object o, System.EventArgs e)
		{
			Cambro.Web.Helpers.WriteAlertHeader();

			Cambro.Web.Helpers.WriteAlert("Selecting groups...", 1);
			Query q = new Query();

			q.TableElement = new Join(Group.Columns.BrandK, Brand.Columns.K);

			q.QueryCondition = new Or(
				new And(
					new Or(new Q(Group.Columns.Pic, QueryOperator.IsNull, null), new Q(Group.Columns.Pic, Guid.Empty)),
					new And(new Q(Brand.Columns.Pic, QueryOperator.IsNotNull, null), new Q(Brand.Columns.Pic, QueryOperator.NotEqualTo, Guid.Empty))
				),
				new And(
					new Or(new Q(Brand.Columns.Pic, QueryOperator.IsNull, null), new Q(Brand.Columns.Pic, Guid.Empty)),
					new And(new Q(Group.Columns.Pic, QueryOperator.IsNotNull, null), new Q(Group.Columns.Pic, QueryOperator.NotEqualTo, Guid.Empty))
				)
			);
			GroupSet bs = new GroupSet(q);
			for (int count = 0; count < bs.Count; count++)
			{
				Group c = bs[count];

				try
				{
					if (c.HasPic && !c.Brand.HasPic)
					{
						Bobs.Utilities.CopyPic(c, c.Brand);
						Cambro.Web.Helpers.WriteAlert("Copying from " + c.UrlName + " to " + c.Brand.UrlName + " (" + count + "/" + bs.Count + ")", 2);
					}
					else if (!c.HasPic && c.Brand.HasPic)
					{
						Bobs.Utilities.CopyPic(c.Brand, c);
						Cambro.Web.Helpers.WriteAlert("Copying from " + c.Brand.UrlName + " to " + c.UrlName + " (" + count + "/" + bs.Count + ")", 2);
					}
					else
					{
						Cambro.Web.Helpers.WriteAlert("Not copying for " + c.Brand.UrlName + " / " + c.UrlName, 3);
					}
					// Do work here!
					//c.Update();

				}
				catch (Exception ex)
				{
					Cambro.Web.Helpers.WriteAlert("Exception on " + c.UrlName + " - " + count + "/" + bs.Count + " - " + ex.ToString(), 4);
				}

				bs.Kill(count);

			}
			Cambro.Web.Helpers.WriteAlert("Done!", 5);
			Cambro.Web.Helpers.WriteAlertFooter();
		}
Пример #37
0
		public UrlPartTypes ProcessFilterPart(ref int currentIndex, string[] urlParts)
		{
			if (HasYearFilter && urlParts[currentIndex].Equals("tickets"))
			{
				#region tickets calendar
				PageType = PageTypes.Pages;
				PageName = "CalendarTickets";
				CurrentApplication = "tickets";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (HasYearFilter && urlParts[currentIndex].Equals("free"))
			{
				#region Free Guestlist calendar
				PageType = PageTypes.Pages;
				PageName = "CalendarFreeGuestlist";
				CurrentApplication = "free";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("tags"))
			{
				#region tags
				PageType = PageTypes.Pages;
				PageName = "TagSearch";
				CurrentApplication = "tags";
				HasTagFilter = true;

				currentIndex++;
				if (urlParts.Length > currentIndex)
				{

					CurrentApplication = "tags/" + urlParts[currentIndex];

					foreach (string s in urlParts[currentIndex].Split('-'))
					{
						if (!s.Equals("all"))
							TagFilter.Add(Cambro.Web.Helpers.UrlTextDeSerialize(s));
					}

					currentIndex++;
				}
				return UrlPartTypes.Application;
				#endregion
			}
			else if ((HasBrandObjectFilter || HasVenueObjectFilter) && (urlParts[currentIndex].Equals("tickets") || urlParts[currentIndex].Equals("photos")))
			{
				#region Styled page
				currentIndex++;
				PageType = PageTypes.Styled;
				PageName = "Home";
				if (urlParts.Length > currentIndex &&
					YearRegex.IsMatch(urlParts[currentIndex]))
				{
					#region //year and month
					int year = int.Parse(urlParts[currentIndex]);
					if (year > 1990 && year < 2030)
					{
						HasYearFilter = true;
						DateFilter = new DateTime(year, 1, 1);
						PageName = "Calendar";
						currentIndex++;
						if (urlParts.Length > currentIndex &&
							MonthRegex.IsMatch(urlParts[currentIndex]))
						{
							int month = MonthNumber(urlParts[currentIndex]);
							HasMonthFilter = true;
							DateFilter = new DateTime(year, month, 1);
							currentIndex++;
						}
						return UrlPartTypes.Application;
					}
					#endregion
				}
				else if (urlParts.Length > currentIndex &&
					MonthRegex.IsMatch(urlParts[currentIndex]))
				{
					#region //month only - infer the year
					int requestedMonth = MonthNumber(urlParts[currentIndex]);
					HasYearFilter = true;
					HasMonthFilter = true;
					int requestedMonthIndex = (DateTime.Today.Year * 12) + requestedMonth;
					int currentMonthIndex = (DateTime.Today.Year * 12) + DateTime.Today.Month;
					DateTime d = new DateTime(DateTime.Today.Year, requestedMonth, 1);

					if (currentMonthIndex - requestedMonthIndex > 4)
					{
						d = new DateTime(DateTime.Today.Year + 1, requestedMonth, 1);
					}
					else if (currentMonthIndex - requestedMonthIndex < -7)
					{
						d = new DateTime(DateTime.Today.Year - 1, requestedMonth, 1);
					}

					DateFilter = d;
					PageName = "Calendar";
					currentIndex++;
					return UrlPartTypes.Application;
					#endregion
				}
				else if (urlParts.Length > currentIndex &&
					urlParts[currentIndex].ToLower().Equals("calendar"))
				{
					#region //todays month
					DateFilter = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
					PageName = "Calendar";
					currentIndex++;
					return UrlPartTypes.Application;
					#endregion
				}
				else if (urlParts.Length > currentIndex &&
					NumericRegex.IsMatch(urlParts[currentIndex]))
				{
					#region //event id
					PageName = "EventDetail";
					return UrlPartTypes.Application;
					#endregion
				}
				return UrlPartTypes.ObjectFilter;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("parties"))
			{
				#region brand
				currentIndex++;
				Query brandQuery = new Query();
				brandQuery.NoLock = true;
				brandQuery.Columns = new ColumnSet(Brand.Columns.K);
				brandQuery.QueryCondition = new Q(Brand.Columns.UrlName, urlParts[currentIndex]);
				BrandSet bs = new BrandSet(brandQuery);
				if (bs.Count > 0)
				{
					HasObjectFilter = true;
					ObjectFilterType = Model.Entities.ObjectType.Brand;
					ObjectFilterK = bs[0].K;
					PageType = PageTypes.Application;
					PageName = "Home";
					CurrentFilter += "/parties/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("groups"))
			{
				#region group
				currentIndex++;
				if (urlParts.Length > currentIndex)
				{
					string groupUrlName = urlParts[currentIndex];
					if (urlParts[currentIndex].Equals("parties"))
					{
						currentIndex++;
						groupUrlName = "parties/" + urlParts[currentIndex];
					}
					Query groupQuery = new Query();
					groupQuery.NoLock = true;
					groupQuery.Columns = new ColumnSet(Bobs.Group.Columns.K);
					groupQuery.QueryCondition = new Q(Bobs.Group.Columns.UrlName, groupUrlName);
					GroupSet gs = new GroupSet(groupQuery);
					if (gs.Count > 0)
					{
						HasObjectFilter = true;
						ObjectFilterType = Model.Entities.ObjectType.Group;
						ObjectFilterK = gs[0].K;
						PageType = PageTypes.Application;
						PageName = "Home";
						CurrentFilter += "/groups/" + groupUrlName;
						currentIndex++;
						return UrlPartTypes.ObjectFilter;
					}
				}
				PageType = PageTypes.Pages;
				PageName = "GroupBrowser";
				CurrentApplication = "groups";
				return UrlPartTypes.Application;
				#endregion
			}
			else if (!HasObjectFilter && urlParts[currentIndex].Equals("promoters"))
			{
				#region promoter
				currentIndex++;
				Query promoterQuery = new Query();
				promoterQuery.NoLock = true;
				promoterQuery.Columns = new ColumnSet(Promoter.Columns.K);
				promoterQuery.QueryCondition = new Q(Promoter.Columns.UrlName, urlParts[currentIndex]);
				PromoterSet ps = new PromoterSet(promoterQuery);
				if (ps.Count > 0)
				{
					HasObjectFilter = true;
					ObjectFilterType = Model.Entities.ObjectType.Promoter;
					ObjectFilterK = ps[0].K;
					PageType = PageTypes.Application;
					PageName = "Home";
					CurrentFilter += "/promoters/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (!HasObjectFilter && urlParts[currentIndex].Equals("members"))
			{
				#region members - usr
				currentIndex++;
				if (urlParts[currentIndex].Length > 0)
				{
					Usr usr = Usr.GetFromNickName(urlParts[currentIndex]);
					if (usr != null)
					{
						HasObjectFilter = true;
						ObjectFilterType = Model.Entities.ObjectType.Usr;
						ObjectFilterK = usr.K;
						PageType = PageTypes.Application;
						PageName = "Home";
						CurrentFilter += "/members/" + urlParts[currentIndex];
						currentIndex++;
						return UrlPartTypes.ObjectFilter;
					}
					//Query usrQuery = new Query();
					//usrQuery.NoLock = true;
					//usrQuery.Columns = new ColumnSet(Usr.Columns.K);
					//usrQuery.QueryCondition = new Q(Usr.Columns.NickName, urlParts[currentIndex]);
					//UsrSet us = new UsrSet(usrQuery);
					//if (us.Count > 0)
					//{
					//    HasObjectFilter = true;
					//    ObjectFilterType = Model.Entities.ObjectType.Usr;
					//    ObjectFilterK = us[0].K;
					//    PageType = PageTypes.Application;
					//    PageName = "Home";
					//    CurrentFilter += "/members/" + urlParts[currentIndex];
					//    currentIndex++;
					//    return UrlPartTypes.ObjectFilter;
					//}
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].StartsWith("event-"))
			{
				#region event
				try
				{
					Event ev = new Event(int.Parse(urlParts[currentIndex].Split('-')[1]));
					HasObjectFilter = true;
					ObjectFilterType = Model.Entities.ObjectType.Event;
					ObjectFilterK = ev.K;
					PageType = PageTypes.Application;
					PageName = "Home";
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				catch
				{
					currentIndex++;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].StartsWith("gallery-"))
			{
				#region gallery
				try
				{
					Gallery g = new Gallery(int.Parse(urlParts[currentIndex].Split('-')[1]));
					HasObjectFilter = true;
					PageType = PageTypes.Application;
					PageName = "Home";
					ObjectFilterType = Model.Entities.ObjectType.Gallery;
					ObjectFilterK = g.K;
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				catch
				{
					currentIndex++;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].StartsWith("photo-"))
			{
				#region photo
				try
				{
					Photo p = new Photo(int.Parse(urlParts[currentIndex].Split('-')[1]));
					HasObjectFilter = true;
					PageType = PageTypes.Application;
					PageName = "Home";
					ObjectFilterType = Model.Entities.ObjectType.Photo;
					ObjectFilterK = p.K;
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				catch
				{
					currentIndex++;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].StartsWith("article-"))
			{
				#region article
				try
				{
					Article a = new Article(int.Parse(urlParts[currentIndex].Split('-')[1]));
					HasObjectFilter = true;
					PageType = PageTypes.Application;
					PageName = "Home";
					ObjectFilterType = Model.Entities.ObjectType.Article;
					ObjectFilterK = a.K;
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				catch
				{
					currentIndex++;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (GetMusicTypeK(urlParts[currentIndex].ToLower()) > 0)
			{
				#region music filter
				this.HasMusicFilter = true;
				this.MusicFilterK = GetMusicTypeK(urlParts[currentIndex].ToLower());
				CurrentFilter += "/" + urlParts[currentIndex].ToLower();
				currentIndex++;
				return UrlPartTypes.MusicFilter;
				#endregion
			}
			else if (GetThemeK(urlParts[currentIndex].ToLower()) > 0)
			{
				#region theme filter
				this.HasThemeFilter = true;
				this.ThemeFilterK = GetThemeK(urlParts[currentIndex].ToLower());
				CurrentFilter += "/" + urlParts[currentIndex].ToLower();
				currentIndex++;
				return UrlPartTypes.ThemeFilter;
				#endregion
			}
			else if (GetCountryK(urlParts[currentIndex].ToLower()) > 0)
			{
				#region Lookup country / place / venue
				HasObjectFilter = true;
				ObjectFilterType = Model.Entities.ObjectType.Country;
				ObjectFilterK = GetCountryK(urlParts[currentIndex].ToLower());
				PageType = PageTypes.Application;
				PageName = "Home";
				CurrentFilter += "/" + urlParts[currentIndex].ToLower();
				currentIndex++;
				int countryK = this.ObjectFilterK;

				if (urlParts.Length > currentIndex)
				{
					Country country = new Country(countryK);
					Q regionQ = new Q(true);
					if (country.UseRegion)
					{
						Query qRegion = new Query();
						qRegion.NoLock = true;
						qRegion.Columns = new ColumnSet(Region.Columns.K);
						qRegion.TopRecords = 1;
						qRegion.QueryCondition = new And(
							new Q(Region.Columns.CountryK, countryK),
							new Q(Region.Columns.Abbreviation, urlParts[currentIndex]));
						RegionSet rs = new RegionSet(qRegion);
						if (rs.Count > 0)
						{
							HasObjectFilter = true;
							ObjectFilterType = Model.Entities.ObjectType.Region;
							ObjectFilterK = rs[0].K;
							PageType = PageTypes.Application;
							PageName = "Home";
							int regionK = ObjectFilterK;
							regionQ = new Q(Place.Columns.RegionK, regionK);
							CurrentFilter += "/" + urlParts[currentIndex].ToLower();

							currentIndex++;

							if (!(urlParts.Length > currentIndex))
								return UrlPartTypes.ObjectFilter;
						}


					}
					#region Lookup place
					Query placeQuery = new Query();
					placeQuery.NoLock = true;
					placeQuery.Columns = new ColumnSet(Place.Columns.K);
					placeQuery.QueryCondition = new And(
						new Q(Place.Columns.Enabled, true),
						new Q(Place.Columns.CountryK, countryK),
						new Q(Place.Columns.UrlName, urlParts[currentIndex].ToLower()),
						regionQ
					);
					PlaceSet ps = new PlaceSet(placeQuery);
					if (ps.Count > 0)
					{
						HasObjectFilter = true;
						ObjectFilterType = Model.Entities.ObjectType.Place;
						ObjectFilterK = ps[0].K;
						PageType = PageTypes.Application;
						PageName = "Home";
						CurrentFilter += "/" + urlParts[currentIndex].ToLower();
						currentIndex++;
						int placeK = this.ObjectFilterK;

						if (urlParts.Length > currentIndex)
						{
							#region Lookup venue
							Query venueQuery = new Query();
							venueQuery.NoLock = true;
							venueQuery.Columns = new ColumnSet(Venue.Columns.K);
							venueQuery.QueryCondition = new And(
								new Q(Venue.Columns.PlaceK, placeK),
								new Q(Venue.Columns.UrlName, urlParts[currentIndex].ToLower())
								);
							VenueSet vs = new VenueSet(venueQuery);
							if (vs.Count > 0)
							{
								HasObjectFilter = true;
								ObjectFilterType = Model.Entities.ObjectType.Venue;
								ObjectFilterK = vs[0].K;
								PageType = PageTypes.Application;
								PageName = "Home";
								CurrentFilter += "/" + urlParts[currentIndex].ToLower();
								currentIndex++;
								int venueK = this.ObjectFilterK;
							}
							#endregion
						}
					}
					#endregion
				}
				return UrlPartTypes.ObjectFilter;
				#endregion
			}
			else if (YearRegex.IsMatch(urlParts[currentIndex]))
			{
				#region year / month / day
				int year = int.Parse(urlParts[currentIndex]);
				if (year > 1990 && year < 2030)
				{
					HasYearFilter = true;
					DateFilter = new DateTime(year, 1, 1);
					PageType = PageTypes.Pages;
					PageName = "Calendar";
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					if (urlParts.Length > currentIndex && MonthRegex.IsMatch(urlParts[currentIndex]))
					{
						int month = MonthNumber(urlParts[currentIndex]);
						HasMonthFilter = true;
						DateFilter = new DateTime(year, month, 1);
						PageType = PageTypes.Pages;
						PageName = "Calendar";
						CurrentFilter += "/" + urlParts[currentIndex];
						currentIndex++;
						if (urlParts.Length > currentIndex && DayRegex.IsMatch(urlParts[currentIndex]))
						{
							int day = int.Parse(urlParts[currentIndex]);
							try
							{
								DateFilter = new DateTime(year, month, day);
								HasDayFilter = true;
								PageType = PageTypes.Pages;
								PageName = "Calendar";
								CurrentFilter += "/" + urlParts[currentIndex];
								currentIndex++;
							}
							catch
							{
								currentIndex++;
							}
						}
					}
					return UrlPartTypes.DateFilter;
				}
				else
					return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("chat") || urlParts[currentIndex].Equals("messages"))
			{
				#region chat application
				PageType = PageTypes.Pages;
				PageName = "Chat";
				CurrentApplication = "chat";
				currentIndex++;
				if (ObjectFilterType.Equals(Model.Entities.ObjectType.Usr))
				{
					PageType = PageTypes.PagesFolder;
					PageFolder = "Usrs";
					PageName = "MyComments";
					CurrentApplication = "chat";
				}
				return UrlPartTypes.Application;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("archive"))
			{
				#region archive application
				PageType = PageTypes.Pages;
				PageName = "Archive";
				CurrentApplication = "archive";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("hottickets"))
			{
				#region hot tickets application
				PageType = PageTypes.Pages;
				PageName = "HotTickets";
				CurrentApplication = "hottickets";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("home"))
			{
				#region home application
				CurrentApplication = "home";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (HasUsrObjectFilter && urlParts[currentIndex].Equals("photosof"))
			{
				#region photosof page
				currentIndex++;
				PageType = PageTypes.Application;
				PageName = "photosof";
				CurrentApplication = "photosof/" + urlParts[currentIndex].ToLower();
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else
			{
				if (urlParts.Length > currentIndex)
				{
					if (!PageType.Equals(PageTypes.Styled))
						PageType = PageTypes.Application;
					PageName = urlParts[currentIndex].ToLower();
					CurrentApplication = urlParts[currentIndex].ToLower();
					currentIndex++;
					return UrlPartTypes.Application;
				}
				else
				{
					currentIndex++;
					return UrlPartTypes.Null;
				}
			}
		}
Пример #38
0
		public void NewsPanel_Load(object o, System.EventArgs e)
		{
			if (EnsureSecure)
			{

				NewsListBind();

				Query q = new Query();
				q.TableElement = new Join(
					new TableElement(TablesEnum.Group),
					new TableElement(TablesEnum.Brand),
					QueryJoinType.Inner,
					new And(
						new Q(Group.Columns.BrandK, Brand.Columns.K, true),
						new Q(Brand.Columns.PromoterK, ContainerPage.Url.ObjectFilterPromoter.K),
						new Q(Brand.Columns.PromoterStatus, Brand.PromoterStatusEnum.Confirmed)
					)
				);
				q.ReturnCountOnly = true;
				GroupSet gs = new GroupSet(q);

				if (gs.Count > 0)
				{
					NewsPostPanel.Visible = true;
					NoNewsPostPanel.Visible = false;

					if (!Page.IsPostBack)
					{
						NewsAddThread.AddThreadAdvancedCheckBox.Checked = true;
						NewsAddThread.AddThreadNewsCheckBox.Checked = true;
						NewsAddThread.AddThreadGroupRadioButton.Checked = true;
					}

					NewsAddThread.ForceParentType = Model.Entities.ObjectType.Event;
					NewsAddThread.ForceParentK = CurrentEvent.K;

					if (NewsAddThreadStatusHidden.Value.Equals("1"))
					{
						NewsAddThreadPanel.Style["display"] = "";
						NewsAddThreadLinkP.Style["display"] = "none";
					}
					else
					{
						NewsAddThreadPanel.Style["display"] = "none";
						NewsAddThreadLinkP.Style["display"] = "";
					}

				}
				else
				{
					NewsPostPanel.Visible = false;
					NoNewsPostPanel.Visible = true;
				}


			}
		}
 public StudentListViewModel()
 {
     Group    = new GroupSet();
     Students = new List <StudentSet>();
 }
 public void EditGroup(GroupSet group, string teacherId)
 {
     group.Teacher_Id = Int32.Parse(teacherId);
     _databaseService.EditGroup(group);
 }
Пример #41
0
 public void RemoveGroup(GroupSet groupSet)
 {
     context.GroupSet.Remove(groupSet);
     context.SaveChanges();
 }
Пример #42
0
        /*! \cond PRIVATE */

        GroupSet addGroupItems(CGBoundsGroup group, ref List <CGSpot> spots, ref float remainingLength, ref float currentDistance, bool calcLengthOnly = false)
        {
            if (group.ItemCount == 0)
            {
                return(null);
            }

            CGBounds currentBounds;
            int      itemID;
            int      added = 0;

            float    gapBefore = group.SpaceBefore.Next;
            float    gapAfter  = group.SpaceAfter.Next;
            float    remain    = remainingLength - gapBefore;
            GroupSet vGroup    = null;
            GroupSet endItems  = new GroupSet();

            float dist = currentDistance + gapBefore;



            if (calcLengthOnly)
            {
                vGroup        = new GroupSet();
                vGroup.Group  = group;
                vGroup.Length = gapBefore + gapAfter;
            }
            // Fixed Start Item(s)

            for (int i = 0; i < group.FirstRepeating; i++)
            {
                itemID        = group.Items[i].Index;
                currentBounds = getItemBounds(itemID);
                if (currentBounds)
                {
                    remain -= currentBounds.Depth;
                    if (remain > 0)
                    {
                        if (calcLengthOnly)
                        {
                            vGroup.Length += currentBounds.Depth;
                            vGroup.Items.Add(itemID);
                            vGroup.Distances.Add(dist);
                        }
                        else
                        {
                            spots.Add(getSpot(itemID, ref group, ref currentBounds, dist, remainingLength));
                        }

                        dist += currentBounds.Depth;
                        added++;
                    }
                    else
                    {
                        if (group.KeepTogether && added > 0)
                        {
                            spots.RemoveRange(spots.Count - added, added);
                        }
                        break;
                    }
                }
            }
            if (remain > 0)
            {
                float endDist = 0;
                // Fixed End Item(s)
                for (int i = group.LastRepeating + 1; i < group.ItemCount; i++)
                {
                    itemID        = group.Items[i].Index;
                    currentBounds = getItemBounds(itemID);
                    if (currentBounds)
                    {
                        remain -= currentBounds.Depth;
                        if (remain > 0)
                        {
                            endItems.Length += currentBounds.Depth;
                            endItems.Items.Add(itemID);
                            endItems.Distances.Add(endDist);
                            endDist += currentBounds.Depth;
                        }
                        else
                        {
                            break;
                        }
                    }
                }


                if (remain > 0)
                {
                    // Mid Items
                    int itemIdx;
                    for (int i = group.FirstRepeating; i <= group.LastRepeating; i++)
                    {
                        itemIdx = (group.RepeatingOrder == CurvyRepeatingOrderEnum.Row) ? i : group.getRandomItemINTERNAL();
                        itemID  = group.Items[itemIdx].Index;

                        currentBounds = getItemBounds(itemID);
                        if (currentBounds)
                        {
                            remain -= currentBounds.Depth;
                            if (remain > 0)
                            {
                                if (calcLengthOnly)
                                {
                                    vGroup.Length += currentBounds.Depth;
                                    vGroup.Items.Add(itemID);
                                    vGroup.Distances.Add(dist);
                                }
                                else
                                {
                                    spots.Add(getSpot(itemID, ref group, ref currentBounds, dist, remainingLength));
                                }

                                dist += currentBounds.Depth;
                                added++;
                            }
                            else
                            {
                                if (group.KeepTogether && added > 0)
                                {
                                    spots.RemoveRange(spots.Count - added, added);
                                }
                                break;
                            }
                        }
                    }
                }

                if (remain > 0 || !group.KeepTogether)
                {
                    for (int e = 0; e < endItems.Items.Count; e++)
                    {
                        var b = getItemBounds(endItems.Items[e]);
                        spots.Add(getSpot(endItems.Items[e], ref group, ref b, dist + endItems.Distances[e], remainingLength));
                        dist += b.Depth;
                    }
                }
            }

            remainingLength = remain - gapAfter;
            currentDistance = dist + gapAfter;
            return(vGroup);
        }
Пример #43
0
		public void CreateUniqueUrlName(bool update)
		{
			string urlName = UrlInfo.GetUrlName(this.Name);
			if (urlName.Length==0)
				urlName = "group-"+this.K.ToString();
			if (UrlInfo.IsReservedString(urlName))
				urlName = "group-"+urlName;

			GroupSet gs = null;
			int namePost = 0;
			string newName = urlName;
			while (gs==null || gs.Count>0)
			{
				if (namePost>0)
					newName = urlName+"-"+namePost.ToString();
				Query q = new Query();
				q.NoLock=true;
				q.ReturnCountOnly=true;
				q.QueryCondition=new And(
					new Q(Group.Columns.UrlName,newName),
					new Q(Group.Columns.K,QueryOperator.NotEqualTo,this.K)
				);
				gs = new GroupSet(q);
				namePost++;
			}
			
			if (!this.UrlName.Equals(newName))
			{
				this.UrlName = newName;
				if (update)
				{
					this.Update();
					Utilities.UpdateChildUrlFragmentsJob job = new Utilities.UpdateChildUrlFragmentsJob(Model.Entities.ObjectType.Group, this.K, true);
					job.ExecuteAsynchronously();
				}
			}
		}
Пример #44
0
		protected void Page_Load(object sender, EventArgs e)
		{
			if (Usr.Current != null)
			{
				#region Home country
				{
					if (Country.Current != null)
					{
						HomeCountryLink.HRef = Country.Current.Url();
						HomeCountryLink.InnerHtml = Country.Current.FriendlyName;
						HomeCountryLabel.Text = Country.Current.FriendlyName;
					}
				}
				#endregion

				#region Favourite groups
				{
					Query q = new Query();
					q.TableElement = new Join(
						new TableElement(TablesEnum.Group),
						new TableElement(TablesEnum.GroupUsr),
						QueryJoinType.Inner,
						new And(
							new Q(Group.Columns.K, GroupUsr.Columns.GroupK, true),
							new Q(GroupUsr.Columns.Favourite, true),
							new Q(GroupUsr.Columns.UsrK, Usr.Current.K),
							new Q(GroupUsr.Columns.Status, GroupUsr.StatusEnum.Member)
						)
					);
					q.Columns = new ColumnSet(Group.Columns.UrlName, Group.Columns.Name);
					q.OrderBy = new OrderBy(Group.Columns.Name);
					GroupSet gs = new GroupSet(q);
					if (gs.Count > 0)
					{
						StringBuilder sb = new StringBuilder();
						foreach (Group g in gs)
						{
							sb.Append(string.Format("{0}<a href=\"{1}\">{2}</a>", sb.Length == 0 ? "" : ", ", g.Url(), g.Name));
						}
						FavouriteGroupsPlaceholder.Controls.Add(new LiteralControl(sb.ToString()));
						FavouriteGroupsHolder.Visible = true;
						NoFavouriteGroupsHolder.Visible = false;
					}
					else
					{
						FavouriteGroupsHolder.Visible = false;
						NoFavouriteGroupsHolder.Visible = true;
					}
				}
				#endregion

				#region Places I visit
				{
					Query q = new Query();
					q.TableElement = new Join(
						new TableElement(TablesEnum.Place),
						new TableElement(TablesEnum.UsrPlaceVisit),
						QueryJoinType.Inner,
						new And(
							new Q(Place.Columns.K, UsrPlaceVisit.Columns.PlaceK, true),
							new Q(UsrPlaceVisit.Columns.UsrK, Usr.Current.K)
						)
					);
					q.Columns = new ColumnSet(Place.Columns.UrlName, Place.Columns.Name, Place.Columns.RegionAbbreviation, Place.Columns.UrlFragment);
					q.OrderBy = new OrderBy(Place.Columns.Name);
					PlaceSet ps = new PlaceSet(q);
					if (ps.Count > 0)
					{
						StringBuilder sb = new StringBuilder();
						foreach (Place p in ps)
						{
							sb.Append(string.Format("{0}<a href=\"{1}\">{2}</a>", sb.Length == 0 ? "" : ", ", p.Url(), p.NamePlain));
						}
						PlacesPlaceholder.Controls.Add(new LiteralControl(sb.ToString()));
					}
					else
					{
						PlacesHolder.Visible = false;
					}
				}
				#endregion

				#region Calendars
				{
					MyCalendarLink.HRef = "/pages/mycalendar#Day" + DateTime.Now.ToString("yyyyMMdd");
					BuddyCalendarLink.HRef = "/pages/mycalendar/type-buddy#Day" + DateTime.Now.ToString("yyyyMMdd");
				}
				#endregion

				#region My comments
				{
					MyCommentsLink.HRef = Usr.Current.UrlApp("chat");
				}
				#endregion

				#region My tickets
				{
					MyTicketsLink.HRef = Usr.Current.UrlApp("mytickets");
				}
				#endregion

				#region Online buddies
				{
					Query q = new Query();
					q.TableElement = Usr.BuddyJoin;
					q.QueryCondition = new And(
						new Q(Buddy.Columns.UsrK, Usr.Current.K),
						Usr.LoggedIn30MinIncludeNonEmailVerifiedQ);
					q.OrderBy = new OrderBy(Usr.Columns.NickName);
					UsrSet us = new UsrSet(q);
					StringBuilder sb = new StringBuilder();
					foreach (Usr u in us)
					{
						sb.Append(sb.Length == 0 ? "" : ", ");
						u.LinkAppend(sb, false);
					}
					OnlineBuddiesPlaceholder.Controls.Add(new LiteralControl(sb.ToString()));
				}
				{
					Query q = new Query();
					q.QueryCondition = Usr.LoggedIn30MinIncludeNonEmailVerifiedQ;
					q.CacheDuration = TimeSpan.FromMinutes(15);
					q.ReturnCountOnly = true;
					UsrSet us = new UsrSet(q);
					NumberOnlineLabel.Text = us.Count.ToString("#,##0");
				}
				#endregion

				#region Favourite photos
				//{
				//    Query q = new Query();
				//    q.TableElement = Photo.UsrFavouritesJoin;
				//    q.OrderBy = new OrderBy(UsrPhotoFavourite.Columns.DateTimeAdded, OrderBy.OrderDirection.Descending);
				//    q.TopRecords = 7;
				//    q.QueryCondition = new Q(UsrPhotoFavourite.Columns.UsrK, Usr.Current.K);
				//    PhotoSet ps = new PhotoSet(q);
				//    StringBuilder sb = new StringBuilder();
				//    foreach (Photo p in ps)
				//    {
				//        sb.Append(string.Format("<a href=\"{0}\"><img src=\"{1}\" border=\"0\" width=\"50\" height=\"50\" class=\"BorderBlack All\" /></a> ", p.Url(), p.IconPath));
				//    }
				//    FavouritePhotosPlaceholder.Controls.Add(new LiteralControl(sb.ToString()));

				//    FavouritePhotosLink.HRef = Usr.Current.UrlApp("favouritephotos");
				//}
				#endregion
			}
			
		}
Пример #45
0
        public void _fullBikeTestFail()
        {
            // Frame
            string model          = "Nukeproof Scout 290 Frame 2018";
            string invalid_colour = "Gray";
            int    size           = 17;
            bool   isSpecialised  = true;
            double cost           = 349.99;
            bool   availability   = false;

            BikeFrame frame = new BikeFrame();

            try
            {
                frame.Model         = model;
                frame.Colour        = invalid_colour;
                frame.Size          = size;
                frame.IsSpecialised = isSpecialised;
                frame.Cost          = cost;
                frame.Availability  = availability;
                Assert.Fail("No exception was thrown for an invalid colour");
            }
            catch (ArgumentException error)
            {
                Console.WriteLine(error.Message);
                Assert.AreEqual("Colour '" + invalid_colour + "' not available", error.Message);
            }


            // Group Set
            string gears  = "Some gears";
            string brakes = "Some brakes";

            isSpecialised = false;
            double invalid_cost = -50;

            availability = true;

            GroupSet groupset = new GroupSet();

            try
            {
                groupset.Gears        = gears;
                groupset.Brakes       = brakes;
                groupset.Cost         = invalid_cost;
                groupset.Availability = availability;
                Assert.Fail("No exception was thrown for an invalid cost");
            }
            catch (ArgumentException error)
            {
                Console.WriteLine(error.Message);
                Assert.AreEqual("Cost '" + invalid_cost + "' is not valid", error.Message);
            }

            // Wheels
            string invalid_model = "";

            isSpecialised = true;
            cost          = 180;
            availability  = false;

            Wheels wheels = new Wheels();

            try
            {
                wheels.Model         = invalid_model;
                wheels.IsSpecialised = isSpecialised;
                wheels.Cost          = cost;
                wheels.Availability  = availability;
                Assert.Fail("No exception was thrown for an invalid model");
            }
            catch (ArgumentException error)
            {
                Console.WriteLine(error.Message);
                Assert.AreEqual("Model '" + invalid_model + "' is not valid", error.Message);
            }


            // Finishing Set
            model = "Some model";
            string handlebars     = "Some handlebars";
            string invalid_saddle = "";

            isSpecialised = false;
            cost          = 214.99;
            availability  = true;

            FinishingSet finishingset = new FinishingSet();

            try
            {
                finishingset.Availability = availability;
                finishingset.Handlebars   = handlebars;
                finishingset.Saddle       = invalid_saddle;
                finishingset.Cost         = cost;
                finishingset.Availability = availability;
                Assert.Fail("No exception was thrown for an invalid saddle");
            }
            catch (ArgumentException error)
            {
                Console.WriteLine(error.Message);
                Assert.AreEqual("Saddle '" + invalid_saddle + "' is not valid", error.Message);
            }

            string invalid_type    = "invalid";
            bool   warrantyUpgrade = true;

            Bike bike = new Bike();

            try
            {
                bike.Type            = invalid_type;
                bike.WarrantyUpgrade = warrantyUpgrade;
                Assert.Fail("No exception was thrown for an invalid bike type");
            }
            catch (ArgumentException error)
            {
                Console.WriteLine(error.Message);
                Assert.AreEqual("Type '" + invalid_type + "' is not available", error.Message);
            }
        }