Ejemplo n.º 1
0
        private void GroupSelected_Click(object sender, RoutedEventArgs e)
        {
            if (selectedObjects.Count <= 1)
            {
                return;
            }

            var group = new CustomGroup(selectedObjects);

            group.Select();

            morphWindow?.ClearObjects();

            selectedObjects.Clear();
            selectedObjects.Add(group);
        }
        /// <summary>Creates a new custom group</summary>
        /// <param name="organisationId"></param>
        /// <param name="customGroup"></param>
        /// <returns></returns>
        public async Task <long> AddCustomGroupAsync(long organisationId, CustomGroup customGroup)
        {
            var request = GetRequest(APIControllerRoutes.CustomGroupsController.ADDCUSTOMGROUP, HttpMethod.Post);

            request.AddUrlSegment("organisationId", organisationId.ToString());
            request.AddJsonBody(customGroup);
            var response = await ExecuteAsync(request).ConfigureAwait(false);

            var  idHeaderVal = GetResponseHeader(response.Headers, "customgroupid");
            long customGroupId;

            if (!long.TryParse(idHeaderVal, out customGroupId) || customGroupId == 0)
            {
                throw new Exception("Could not determine the id of the newly-created group");
            }
            return(customGroupId);
        }
Ejemplo n.º 3
0
    public static void CreateUserCustomGroup(UserCustomGroup userGroup, CustomGroup customGroup, IEnumerable <AdPack> adPackList, Member user, string name, string description, string videoURL = "",
                                             string email = "", string skype = "", string phoneNumber = "", string facebookURL = "")
    {
        userGroup.CreatorUserId = user.Id;
        userGroup.Name          = name;
        userGroup.Description   = description;

        if (!string.IsNullOrWhiteSpace(videoURL))
        {
            userGroup.PromoUrl = videoURL;
        }

        if (!string.IsNullOrWhiteSpace(email))
        {
            userGroup.Email = email;
        }

        if (!string.IsNullOrWhiteSpace(skype))
        {
            userGroup.Skype = skype;
        }

        if (!string.IsNullOrWhiteSpace(phoneNumber))
        {
            userGroup.PhoneNumber = phoneNumber;
        }

        if (!string.IsNullOrWhiteSpace(facebookURL))
        {
            userGroup.FacebookUrl = facebookURL;
        }

        userGroup.CustomGroupId = customGroup.Id;
        userGroup.AdPacksAdded  = adPackList.Count();
        userGroup.GotBonus      = false;


        userGroup.Save();

        foreach (AdPack adpack in adPackList)
        {
            adpack.UserCustomGroupId = userGroup.Id;
            adpack.Save();
        }
    }
Ejemplo n.º 4
0
 private void menuitem_Click(object sender, RoutedEventArgs e)
 {
     if (this.GetSelectedNode() != null)
     {
         SelfDepartmentStaffNode staff = this.GetSelectedNode();
         if (staff != null)
         {
             CustomGroup group = (sender as MenuItem).Tag as CustomGroup;
             CustomGroupManagerWindowViewModel viewModel = CustomGroupManagerWindowViewModel.GetInstance();
             viewModel.AddMemberToCustomGroup((int)this.sessionService.Uid, group.GroupID, this.GetMembers(group) + staff.Staff.Uid + ":", staff.Staff.Uid.ToString());
             if (DataModel.Instance.CustomeGroupName[group.GroupID].Members == null)
             {
                 DataModel.Instance.CustomeGroupName[group.GroupID].Members = new System.Collections.Generic.List <Staff>();
             }
             DataModel.Instance.CustomeGroupName[group.GroupID].Members.Add(staff.Staff);
         }
     }
 }
        private string GetMembers(CustomGroup c)
        {
            string result = string.Empty;
            string result2;

            if (c == null || c.Members == null)
            {
                result2 = result;
            }
            else
            {
                foreach (Staff item in c.Members)
                {
                    result = result + item.Uid + ":";
                }
                result2 = result;
            }
            return(result2);
        }
Ejemplo n.º 6
0
        public ActionResult EditCustomGroup(CustomGroup customGroup)
        {
            var acResponse = new ActivityResponse();

            try
            {
                if (customGroup.TableId < 1 || string.IsNullOrEmpty(customGroup.CustomGroupId))
                {
                    acResponse.Code    = -1;
                    acResponse.Message = "An unknown error was encountered. Please try again.";
                    return(Json(acResponse, JsonRequestBehavior.AllowGet));
                }

                if (string.IsNullOrEmpty(customGroup.GroupName))
                {
                    acResponse.Code    = -1;
                    acResponse.Message = "Please provide custom Group Name";
                    return(Json(acResponse, JsonRequestBehavior.AllowGet));
                }

                if (customGroup.TabIndex < 1)
                {
                    acResponse.Code    = -1;
                    acResponse.Message = "Please provide Custom Group TabIndex";
                    return(Json(acResponse, JsonRequestBehavior.AllowGet));
                }

                _customGroupService.Update(customGroup);
                _unitOfWork.SaveChanges();

                acResponse.Code    = 5;
                acResponse.Message = "Custom Group was successfully updated";
                return(Json(acResponse, JsonRequestBehavior.AllowGet));
            }
            catch (Exception e)
            {
                acResponse.Code    = -1;
                acResponse.Message = "An unknown error was encountered. Please try again.";
                return(Json(acResponse, JsonRequestBehavior.AllowGet));
            }
        }
 private void Addmember2Group(string members)
 {
     if (DataModel.Instance.CustomeGroupName.ContainsKey(this.groupId))
     {
         CustomGroup group = DataModel.Instance.CustomeGroupName[this.groupId];
         if (group != null)
         {
             if (group.Members != null)
             {
                 System.Text.StringBuilder strAll = new System.Text.StringBuilder();
                 foreach (Staff s in group.Members)
                 {
                     if (s.Uid != ServiceUtil.Instance.SessionService.Uid)
                     {
                         strAll.Append(s.Uid + ":");
                     }
                 }
                 CustomGroupManagerWindowViewModel.GetInstance().AddMemberToCustomGroup((int)ServiceUtil.Instance.SessionService.Uid, this.groupId, strAll.ToString(), members);
             }
         }
     }
 }
 private void InitialToBox(string groupid)
 {
     if (DataModel.Instance.CustomeGroupName.ContainsKey(groupid))
     {
         CustomGroup item = DataModel.Instance.CustomeGroupName[groupid];
         if (item.GroupID == groupid && item.Members != null && item.Members.Count > 0)
         {
             foreach (Staff staff in item.Members)
             {
                 if (staff != null && !this.IsExist(staff))
                 {
                     CustomMemberItem citem = new CustomMemberItem(CustomMemberType.Delete);
                     citem.DataContext     = staff;
                     citem.tbkAccount.Text = staff.Name;
                     citem.imgHead.Source  = staff.HeaderImage;
                     citem.ItemDelete     += new System.EventHandler(this.item_ItemDelete);
                     this.lstBoxTo.Items.Add(citem);
                 }
             }
         }
     }
 }
Ejemplo n.º 9
0
 void GroupChanged(object source, FileSystemEventArgs e)
 {
     if (e.ChangeType == WatcherChangeTypes.Created || e.ChangeType == WatcherChangeTypes.Changed)
     {
         LoadGroupFile(e.FullPath.FixPath());
     }
     else if (e.ChangeType == WatcherChangeTypes.Deleted)
     {
         foreach (string key in Groups.Keys)
         {
             CustomGroup group = Groups[key];
             if (group.Path.FixPath() == e.FullPath.FixPath())
             {
                 Groups.Remove(key);
                 break;
             }
         }
     }
     else
     {
         Log("[MissionMaker] Unhandled change type encountered: " + e.ChangeType.ToString());
     }
 }
 private void btnOk_Click(object sender, RoutedEventArgs e)
 {
     if (!DataModel.Instance.CustomeGroupName.ContainsKey(this.groupId))
     {
         base.Close();
     }
     else
     {
         CustomGroup group = DataModel.Instance.CustomeGroupName[this.groupId];
         if (group != null)
         {
             if (group.Members == null)
             {
                 group.Members = new System.Collections.Generic.List <Staff>();
             }
             else
             {
                 group.Members.Clear();
             }
             System.Text.StringBuilder sb = new System.Text.StringBuilder();
             if (this.lstBoxTo.Items.Count != 0)
             {
                 foreach (ListBoxItem item in (System.Collections.IEnumerable) this.lstBoxTo.Items)
                 {
                     Staff staff = item.DataContext as Staff;
                     if (staff != null && !group.Members.Contains(staff) && staff.Uid != ServiceUtil.Instance.SessionService.Uid)
                     {
                         group.Members.Add(staff);
                         sb.Append(staff.Uid + ":");
                     }
                 }
             }
             this.Addmember2Group(sb.ToString());
         }
         base.Close();
     }
 }
Ejemplo n.º 11
0
        /// <summary>
        /// 构造方法
        /// </summary>
        /// <param name="parent">所属的TagGroup对象</param>
        /// <param name="node">Tag属性的Xml节点</param>
        public CustomTag(CustomGroup parent, XmlNode node)
        {
            _log    = Logger.Get <CustomTag>();
            _parent = parent ?? throw new Exception("parent对象不能是空值");

            if (node == null)
            {
                throw new Exception("node对象不能是空值");
            }
            if (node.Name.ToUpper() != "TAG")
            {
                throw new Exception($"Xml节点[{node.Name}]不是\"Tag\"");
            }

            if (node.Attributes["Name"] == null)
            {
                throw new Exception($"{node.Name}节点中未找到[Name]属性,请注意属性名的大小写");
            }
            Name = node.Attributes["Name"].Value;

            if (node.Attributes["Type"] == null)
            {
                Type = TagType.A;
            }
            else
            {
                try
                {
                    Type = (TagType)Enum.Parse(typeof(TagType), node.Attributes["Type"].Value);
                }
                catch
                {
                    throw new Exception($"不支持Type={node.Attributes["Type"].Value}的类型");
                }
            }
        }
Ejemplo n.º 12
0
    protected void CreateGroupButton_Click(object sender, EventArgs e)
    {
        SPanel.Visible = false;
        EPanel.Visible = false;
        try
        {
            if (!AdPacksPlaceHolder.Visible)
            {
                throw new MsgException(U4200.YOUMUSTCLOSEGROUPS);
            }
            int userGroupId     = Convert.ToInt32(GroupsAvailableToOpen.SelectedValue);
            int numberOfAdPacks = 0;
            try
            {
                numberOfAdPacks = Convert.ToInt32(AdPacksTextBox.Text);
            }
            catch (Exception ex)
            {
                throw new MsgException(U4000.BADFORMAT);
            }
            if (numberOfAdPacks <= 0)
            {
                throw new MsgException(U4200.CANTBUYZEROADPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackName));
            }

            var customGroup = new CustomGroup(userGroupId);
            var usersHighestClosedNumber = CustomGroupManager.GetUsersHighestClosedGroup(User);

            var allAdPacksList = AdPackManager.GetUsersActiveAdPacksForGroups(User.Id, customGroup);
            IEnumerable <AdPack> adPacksList = (from a in allAdPacksList select a).Take(numberOfAdPacks);

            if (adPacksList.Count() < numberOfAdPacks)
            {
                throw new MsgException(U4200.NOTENOUGHADPACKSAVAILABLEFORGROUPS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural));
            }

            //HAS USER CLOSED A GROUP WITH A LOWER NUMBER?
            if (customGroup.Number > usersHighestClosedNumber + 1)
            {
                throw new MsgException(U4200.CANTCREATEGROUPOFTHISTYPE);
            }

            //MIN NUMBER OF PACKS TO CREATE
            if (customGroup.CreatorsMinNumberOfAdPacks > numberOfAdPacks)
            {
                throw new MsgException(U4200.MOREADPACKSREQUIRED.Replace("%n%", customGroup.CreatorsMinNumberOfAdPacks.ToString()).Replace("%p%", AppSettings.RevShare.AdPack.AdPackNamePlural));
            }

            //NUMBER OF PACKS TO CLOSE
            if (customGroup.AdPacksLimit < numberOfAdPacks)
            {
                throw new MsgException(U4200.TOOMANYPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural) + " " + customGroup.AdPacksLimit);
            }

            //MAX OPEN INSTANCES
            if (CustomGroupManager.GetNumberOfUsersCustomGroupInstances(User.Id, customGroup.Id) >= customGroup.NumberOfGroupsLimit)
            {
                throw new MsgException("You cannot exceed your group open instances limit");
            }

            //MAX ADMIN ADPACKS
            if (customGroup.CreatorsMaxNumberOfAdPacks < numberOfAdPacks)
            {
                throw new MsgException(U4200.TOOMANYPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural) + " " + customGroup.CreatorsMaxNumberOfAdPacks);
            }

            string name        = GroupNameTextBox.Text;
            string description = GroupDescriptionTextBox.Text;
            string videoURL    = PromoUrlTextBox.Text;
            string email       = EmailTextBox.Text;
            string skype       = SkypeTextBox.Text;
            string phoneNumber = PhoneNumberTextBox.Text;
            string facebookURL = FacebookUrlTextBox.Text;

            if (!string.IsNullOrWhiteSpace(facebookURL) && !facebookURL.Contains("facebook.com"))
            {
                throw new MsgException(L1.ER_BADURL);
            }

            //IFRAME VALID?
            if (!string.IsNullOrWhiteSpace(videoURL) && !UrlVerifier.IsIframeValid(videoURL))
            {
                throw new MsgException(U4200.INVALIDIFRAME);
            }

            CustomGroupManager.CreateUserCustomGroup(NewCustomGroup, customGroup, adPacksList, User, name, description, videoURL, email, skype, phoneNumber, facebookURL);

            SPanel.Visible = true;

            string groupUrl = string.Format("{0}user/advert/groups/customgroup.aspx?g={1}", AppSettings.Site.Url, NewCustomGroup.Id);
            SText.Text = U4200.CREATEGROUPSUCCESS.Replace("%n%", name).Replace("%p%", numberOfAdPacks + " " + AppSettings.RevShare.AdPack.AdPackNamePlural).Replace("%u%", "<br/>" + groupUrl);

            if (NewCustomGroup.AdPacksAdded >= customGroup.AdPacksLimit)
            {
                if (AppSettings.RevShare.AdPack.CustomReturnOption == CustomReturnOption.Increase)
                {
                    CustomGroupManager.IncreaseAdPacksReturnAmountInClosedGroup(customGroup, NewCustomGroup);
                }

                SText.Text += "<br/>" + U5001.CREATORCLOSECUSTOMGROUPSUCCESS.Replace("%a%", AppSettings.RevShare.AdPack.AdPackName)
                              .Replace("%b%", (customGroup.AcceleratedProfitPercentage).ToString());

                NewCustomGroup.Status = CustomGroupStatus.Active;
            }
            else
            {
                NewCustomGroup.Status = CustomGroupStatus.InProgress;
            }

            NewCustomGroup.Save();

            BindToGroupsAvailableToOpenRadio();
            UpdateAvailableAdPacks();
            ClearControls();
        }
        catch (MsgException ex)
        {
            EPanel.Visible = true;
            EText.Text     = ex.Message;
        }
        catch (Exception ex)
        {
            ErrorLogger.Log(ex);
        }
    }
 /// <summary>
 /// Create Plan and at least one Plan sign in.
 /// </summary>
 /// <param name="CustomGroup"></param>
 /// <returns></returns>
 public CustomGroup CreateCustomGroup(CustomGroup CustomGroup)
 {
     ctx.CustomGroup.Add(CustomGroup);
     ctx.SaveChanges();
     return(CustomGroup);
 }
Ejemplo n.º 14
0
    public override void DataBind()
    {
        base.DataBind();

        CustomGroup customGroup = new CustomGroup(userCustomGroup.CustomGroupId);

        JoinGroupButton.Text  = U4200.JOINGROUP;
        LeaveGroupButton.Text = U4200.LEAVEGROUP;
        Button1.Text          = userCustomGroup.Name;
        Button2.Text          = U4200.JOINLEAVE;

        string groupURL = AppSettings.Site.Url + "user/advert/groups/customgroup.aspx?g=" + userCustomGroup.Id;

        GroupURL.Text = String.Format("<a href='{0}'>{0}</a>", groupURL);

        GroupNameLiteral.Text = userCustomGroup.Name;

        PacksLeftLiteral.Text = PacksLeftLiteral2.Text = HtmlCreator.GenerateCPAAdProgressHTML(userCustomGroup.AdPacksAdded, customGroup.AdPacksLimit,
                                                                                               AppSettings.RevShare.AdPack.AdPackNamePlural);

        if (userCustomGroup.AdPacksAdded < customGroup.AdPacksLimit)
        {
            OpenGroupPlaceholder.Visible   = true;
            ClosedGroupPlaceHolder.Visible = false;
        }
        else
        {
            OpenGroupPlaceholder.Visible   = false;
            ClosedGroupPlaceHolder.Visible = true;
        }



        GroupDescriptionLiteral.Text = userCustomGroup.Description;

        VideoImagePlaceholder.Style.Add("max-height", GroupStyles.maxPictureHeight.ToString() + "px");
        VideoImagePlaceholder.Style.Add("max-width", GroupStyles.maxPictureWidth.ToString() + "px");

        if (!string.IsNullOrWhiteSpace(userCustomGroup.PromoUrl))
        {
            VideoPanel.Visible = true;
            VideoLiteral.Text  = userCustomGroup.PromoUrl;


            ImagePanel.Visible = false;
        }
        if (!string.IsNullOrWhiteSpace(userCustomGroup.ImagePath))
        {
            ImagePanel.Visible = true;
            ImageLiteral.Text  = "<img src='" + Page.ResolveUrl(userCustomGroup.ImagePath) + "'></img>";

            VideoPanel.Visible = false;
        }

        if (!string.IsNullOrWhiteSpace(userCustomGroup.Email))
        {
            EmailPlaceHolder.Visible = true;
            EmailLiteral.Text        = userCustomGroup.Email;
        }

        if (!string.IsNullOrWhiteSpace(userCustomGroup.Skype))
        {
            SkypePlaceHolder.Visible = true;
            SkypeLiteral.Text        = userCustomGroup.Skype;
        }

        if (!string.IsNullOrWhiteSpace(userCustomGroup.PhoneNumber))
        {
            PhonePlaceHolder.Visible = true;
            PhoneLiteral.Text        = userCustomGroup.PhoneNumber;
        }

        if (!string.IsNullOrWhiteSpace(userCustomGroup.FacebookUrl))
        {
            FacebookPlaceHolder.Visible = true;
            FacebookLiteral.Text        = string.Format("<a href='{0}'>{1}</a>", userCustomGroup.FacebookUrl, userCustomGroup.Name);
        }

        if (AppSettings.RevShare.AdPack.RevShareCustomGroupRewardsEnabled &&
            (userCustomGroup.Status == CustomGroupStatus.Active || userCustomGroup.Status == CustomGroupStatus.Expired))
        {
            //Show rewards info
            RewardInfoPlaceHolder.Visible = true;
            RewardInfoLiteral.Text        = userCustomGroup.BonusExtraInformation;
        }

        NameLiteral.Text            = MemberManager.getUsersProfileURL(new Member(userCustomGroup.CreatorUserId).Name);
        ParticipantListLiteral.Text = GetParticipants();
    }
 private string GetMembers(CustomGroup c)
 {
     string result = string.Empty;
     string result2;
     if (c == null || c.Members == null)
     {
         result2 = result;
     }
     else
     {
         foreach (Staff item in c.Members)
         {
             result = result + item.Uid + ":";
         }
         result2 = result;
     }
     return result2;
 }
 /// <summary>Updates the details of a custom group</summary>
 /// <param name="organisationId"></param>
 /// <param name="customGroup"></param>
 /// <returns></returns>
 public void UpdateCustomGroup(long organisationId, CustomGroup customGroup)
 {
     UpdateCustomGroupAsync(organisationId, customGroup).ConfigureAwait(false).GetAwaiter().GetResult();
 }
 /// <summary>Creates a new custom group</summary>
 /// <param name="organisationId"></param>
 /// <param name="customGroup"></param>
 /// <returns></returns>
 public long AddCustomGroup(long organisationId, CustomGroup customGroup)
 {
     return(AddCustomGroupAsync(organisationId, customGroup).Result);
 }
Ejemplo n.º 18
0
    public static void AddRemoveUsersAdPacksToCustomGroup(int userId, int numberOfAdPacks, UserCustomGroup userCustomGroup, bool join)
    {
        CustomGroup customGroup = new CustomGroup(userCustomGroup.CustomGroupId);

        if (userId == userCustomGroup.CreatorUserId && !join)
        {
            var packsAvailableToWithdraw = AdPackManager.GetUsersActiveAdPacksForGroups(userId, customGroup, userCustomGroup.Id).Count - customGroup.CreatorsMinNumberOfAdPacks;
            if (numberOfAdPacks > packsAvailableToWithdraw)
            {
                throw new MsgException(U4200.NOTENOUGHADPACKSAVAILABLEFORGROUPS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural));
            }
        }

        List <AdPack> allAdPacksList;

        if (join)
        {
            allAdPacksList = AdPackManager.GetUsersActiveAdPacksForGroups(userId, customGroup, -1);
        }
        else
        {
            allAdPacksList = AdPackManager.GetUsersActiveAdPacksForGroups(userId, customGroup, userCustomGroup.Id);
        }


        //HAS ENOUGH ADPACKS?
        if (allAdPacksList.Count < numberOfAdPacks)
        {
            throw new MsgException(U4200.NOTENOUGHADPACKSAVAILABLEFORGROUPS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural));
        }

        IEnumerable <AdPack> adPacksList = (from a in allAdPacksList select a).Take(numberOfAdPacks);

        //NUMBER OF PACKS TO CLOSE
        if (join)
        {
            if (customGroup.AdPacksLimit - userCustomGroup.AdPacksAdded < numberOfAdPacks)
            {
                throw new MsgException(U4200.TOOMANYPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural) + " " + (customGroup.AdPacksLimit - userCustomGroup.AdPacksAdded));
            }

            //Max number of creator/user adpack limit check
            var  myCurrentAdPacksInThisGroupCount = AdPackManager.GetUsersActiveAdPacksForGroups(userId, customGroup, userCustomGroup.Id).Count;
            bool IsGroupCreator = userId == userCustomGroup.CreatorUserId;

            if (IsGroupCreator && myCurrentAdPacksInThisGroupCount + numberOfAdPacks > customGroup.CreatorsMaxNumberOfAdPacks)
            {
                throw new MsgException(U4200.TOOMANYPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural) + " " + (customGroup.CreatorsMaxNumberOfAdPacks - myCurrentAdPacksInThisGroupCount));
            }

            if (!IsGroupCreator && myCurrentAdPacksInThisGroupCount + numberOfAdPacks > customGroup.UsersMaxNumberOfAdPacks)
            {
                throw new MsgException(U4200.TOOMANYPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackNamePlural) + " " + (customGroup.UsersMaxNumberOfAdPacks - myCurrentAdPacksInThisGroupCount));
            }
        }
        else
        {
            if (customGroup.AdPacksLimit == userCustomGroup.AdPacksAdded)
            {
                throw new MsgException("Can't leave closed group");
            }
        }

        if (join)
        {
            userCustomGroup.AdPacksAdded += numberOfAdPacks;
            foreach (AdPack adpack in adPacksList)
            {
                adpack.UserCustomGroupId = userCustomGroup.Id;
                adpack.Save();
            }
        }
        else
        {
            userCustomGroup.AdPacksAdded -= numberOfAdPacks;
            foreach (AdPack adpack in adPacksList)
            {
                adpack.UserCustomGroupId = -1;
                adpack.Save();
            }
        }

        userCustomGroup.Save();
    }
 private void miAddGroup_Click(object sender, RoutedEventArgs ee)
 {
     CustomGroupTreeViewItem item = new CustomGroupTreeViewItem();
     item.Style = (base.FindResource("TreeViewItemStyle") as Style);
     string id = CustomGroup.GetCustomGroupID();
     CustomGroup cc = new CustomGroup
     {
         Admin = ServiceUtil.Instance.SessionService.Uid,
         GroupID = id,
         GroupName = item.HeaderText
     };
     item.DataContext = cc;
     item.Tag = id;
     CustomGroupManagerWindowViewModel viewModel = CustomGroupManagerWindowViewModel.GetInstance();
     item.CreateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e)
     {
         if (e.Item != null)
         {
             this.inWindow.Employee.FirstTreeView.Items.Add(e.Item);
             CustomGroup c = e.Item.DataContext as CustomGroup;
             if (c != null)
             {
                 DataModel.Instance.CustomeGroupName.Add(c.GroupID, c);
                 viewModel.CreateCustomGroup(this.sessionService.Uid, c.GroupID, e.Item.HeaderText);
             }
         }
     };
     item.DeleteCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e)
     {
         DataModel.Instance.CustomeGroupName.Remove(item.Tag.ToString());
         this.inWindow.Employee.FirstTreeView.Items.Remove(item);
         viewModel.DropCustomGroup((int)this.sessionService.Uid, item.Tag.ToString());
     };
     item.UpdateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs e)
     {
         if (DataModel.Instance.CustomeGroupName.ContainsKey(item.Tag.ToString()))
         {
             DataModel.Instance.CustomeGroupName[item.Tag.ToString()].GroupName = item.HeaderText;
             viewModel.UpdateCustomGroup((int)this.sessionService.Uid, item.Tag.ToString(), item.HeaderText);
         }
     };
     if (this.CreateCustomItemEvent != null)
     {
         this.CreateCustomItemEvent(this, new CustomGroupTreeViewItem.CustomEventArgs
         {
             Item = item
         });
     }
     this.SetFocus(item);
     item.IsSelected = true;
 }
Ejemplo n.º 20
0
 /// <summary>
 /// 构造方法
 /// </summary>
 /// <param name="parent">Tag集合隶属的CustomGroup对象</param>
 public CustomTagCollection(CustomGroup parent)
 {
     _parent = parent;
 }
Ejemplo n.º 21
0
 /// <summary>
 /// Copy constructor.
 /// </summary>
 /// <param name="src">CustomGroup source</param>
 public CustomGroup(CustomGroup src)
     : base(src)
 {
 }
Ejemplo n.º 22
0
 /// <summary>Creates a new custom group</summary>
 /// <param name="organisationId"></param>
 /// <param name="customGroup"></param>
 /// <returns></returns>
 public long AddCustomGroup(long organisationId, CustomGroup customGroup)
 {
     return(AddCustomGroupAsync(organisationId, customGroup).ConfigureAwait(false).GetAwaiter().GetResult());
 }
 private void miAddGroup_Click(object sender, RoutedEventArgs e)
 {
     CustomGroupTreeViewItem item = new CustomGroupTreeViewItem();
     item.Style = (base.FindResource("TreeViewItemStyle") as Style);
     item.CreateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs ee)
     {
         if (ee.Item != null)
         {
             this.FirstTreeView.Items.Add(ee.Item);
             string id = CustomGroup.GetCustomGroupID();
             DataModel.Instance.CustomeGroupName.Add(id, new CustomGroup
             {
                 GroupID = id,
                 GroupName = ee.Item.HeaderText
             });
             this.customGroupManagerViewModel.CreateCustomGroup(this.sessionService.Uid, id, ee.Item.HeaderText);
         }
     };
     item.DeleteCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs ee)
     {
         DataModel.Instance.CustomeGroupName.Remove(item.Tag.ToString());
         this.FirstTreeView.Items.Remove(item);
         this.customGroupManagerViewModel.DropCustomGroup((int)this.sessionService.Uid, item.Tag.ToString());
     };
     item.UpdateCustomItemEvent += delegate(object s, CustomGroupTreeViewItem.CustomEventArgs ee)
     {
         if (DataModel.Instance.CustomeGroupName.ContainsKey(item.Tag.ToString()))
         {
             DataModel.Instance.CustomeGroupName[item.Tag.ToString()].GroupName = item.HeaderText;
             this.customGroupManagerViewModel.UpdateCustomGroup((int)this.sessionService.Uid, item.Tag.ToString(), item.HeaderText);
         }
     };
     CustomGroup c = new CustomGroup
     {
         Admin = this.sessionService.Uid,
         GroupID = CustomGroup.GetCustomGroupID(),
         GroupName = item.HeaderText
     };
     item.DataContext = c;
     item.Tag = c.GroupID;
     this.FirstTreeView.Items.Add(item);
     DataModel.Instance.CustomeGroupName.Add(c.GroupID, c);
     this.customGroupManagerViewModel.CreateCustomGroup(this.sessionService.Uid, c.GroupID, item.HeaderText);
     this.SetFocus(item);
     item.IsSelected = true;
 }
Ejemplo n.º 24
0
    protected void JoinLeaveGroupButton_Click(object sender, EventArgs e)
    {
        SPanel.Visible = false;
        EPanel.Visible = false;

        try
        {
            int numberOfAdPacks = Convert.ToInt32(AdPacksTextBox.Text);

            if (numberOfAdPacks <= 0)
            {
                throw new MsgException(U4200.CANTBUYZEROADPACKS.Replace("%n%", AppSettings.RevShare.AdPack.AdPackName));
            }

            var TheButton = (Button)sender;

            if (TheButton.CommandArgument == "true")
            {
                CustomGroupManager.AddRemoveUsersAdPacksToCustomGroup(User.Id, numberOfAdPacks, userCustomGroup, true);
            }
            else if (TheButton.CommandArgument == "false")
            {
                CustomGroupManager.AddRemoveUsersAdPacksToCustomGroup(User.Id, numberOfAdPacks, userCustomGroup, false);
            }

            SPanel.Visible = true;
            if (TheButton.CommandArgument == "true")
            {
                SText.Text = U4200.JOINGROUPSUCCESS.Replace("%n%", userCustomGroup.Name).Replace("%p%", numberOfAdPacks + " " + AppSettings.RevShare.AdPack.AdPackNamePlural);
            }
            else if (TheButton.CommandArgument == "false")
            {
                SText.Text = U4200.LEAVEGROUPSUCCESS.Replace("%n%", numberOfAdPacks.ToString()).Replace("%p%", AppSettings.RevShare.AdPack.AdPackNamePlural);
            }

            CustomGroup customGroup = new CustomGroup(userCustomGroup.CustomGroupId);
            if (userCustomGroup.AdPacksAdded >= customGroup.AdPacksLimit)
            {
                if (AppSettings.RevShare.AdPack.CustomReturnOption == CustomReturnOption.Increase)
                {
                    CustomGroupManager.IncreaseAdPacksReturnAmountInClosedGroup(customGroup, userCustomGroup);
                }
                userCustomGroup.Status = CustomGroupStatus.Active;

                if (AppSettings.RevShare.AdPack.RevShareCustomGroupRewardsEnabled)
                {
                    GroupRewardManager.Apply(customGroup, userCustomGroup);
                }
            }
            else
            {
                userCustomGroup.Status = CustomGroupStatus.InProgress;
            }

            userCustomGroup.Save();

            UpdateAvailableAdPacks();
            DataBind();
        }
        catch (MsgException ex)
        {
            EPanel.Visible = true;
            EText.Text     = ex.Message;
        }
        catch (Exception ex)
        {
            ErrorLogger.Log(ex);
        }
    }
 private void SetCustomMembers(TreeNodeCustomStaff s, CustomGroup c)
 {
     INWindow inWindow = this.dataService.INWindow as INWindow;
     if (inWindow.Employee.FirstTreeView.Items.Count > 0)
     {
         foreach (TreeViewItem item in (System.Collections.IEnumerable)inWindow.Employee.FirstTreeView.Items)
         {
             CustomGroupTreeViewItem cust = item as CustomGroupTreeViewItem;
             if (cust != null && cust.Tag != null)
             {
                 if (c.GroupID == cust.Tag.ToString())
                 {
                     foreach (TreeNodeCustomStaff i in (System.Collections.IEnumerable)cust.Items)
                     {
                         if (i.Staff.Uid != s.Staff.Uid)
                         {
                             i.IsBigHead = false;
                             i.ShowSmallHead();
                         }
                     }
                 }
                 else
                 {
                     foreach (TreeNodeCustomStaff i in (System.Collections.IEnumerable)cust.Items)
                     {
                         i.IsBigHead = false;
                         i.ShowSmallHead();
                     }
                 }
             }
         }
     }
 }
Ejemplo n.º 26
0
    private KMComponentPool ConvertPool(CustomMission mission, CustomPool pool)
    {
        KMComponentPool componentpool = new KMComponentPool();
        string          Source        = pool.Source;

        // If no source is specified try to figure out what the user wanted.
        if (Source == null)
        {
            if (pool.Modules != null)
            {
                Source = "none";
            }
            else if (pool.Group != null)
            {
                Source = "group";
            }
            else if (pool.Pools != null)
            {
                Source = "pools";
            }
            else
            {
                Log("No source was able to be determined for a pool in the mission located at {0}.", mission.Path);
                return(null);
            }
        }
        else
        {
            Source = Source.ToLowerInvariant();
        }

        if (Source == "group")
        {
            if (pool.Group == null)
            {
                Log("Source was set to Group but no Group parameter found in mission located at {0}.", mission.Path);
                return(null);
            }

            if (Groups.ContainsKey(pool.Group))
            {
                CustomGroup group = Groups[pool.Group];
                pool.Group  = null;
                pool.Source = group.Source;
                pool.Mods   = group.Mods;
                pool.Base   = group.Base;

                if (pool.Blacklist != null)
                {
                    pool.Modules = group.Modules.Except(pool.Blacklist).ToList();
                }
                else
                {
                    pool.Modules = group.Modules;
                }

                Source = pool.Source != null?pool.Source.ToLowerInvariant() : "none";
            }
            else
            {
                Log("Unable to find group {0} for the mission located at {2}.", pool.Group, mission.Path);
            }
        }

        if (Source == "pools")
        {
            if (pool.Pools == null)
            {
                Log("Source was set to Pools but no Pools parameter found in mission located at {0}.", mission.Path);
                return(null);
            }

            componentpool.Count = pool.Count;

            HashSet <string> Modules = new HashSet <string>();
            HashSet <KMComponentPool.ComponentTypeEnum> ComponentTypes = new HashSet <KMComponentPool.ComponentTypeEnum>();
            foreach (CustomPool pool2 in pool.Pools)
            {
                KMComponentPool componentpool2 = ConvertPool(mission, pool2);
                foreach (string module in componentpool2.ModTypes)
                {
                    Modules.Add(module);
                }

                foreach (KMComponentPool.ComponentTypeEnum module in componentpool2.ComponentTypes)
                {
                    ComponentTypes.Add(module);
                }
            }

            componentpool.ModTypes       = Modules.ToList();
            componentpool.ComponentTypes = ComponentTypes.ToList();

            if (ComponentTypes.Count > 0 && !(Modules.Count > 0))
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Base;
            }
            else if (!(ComponentTypes.Count > 0) && Modules.Count > 0)
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Mods;
            }
            else
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Base | KMComponentPool.ComponentSource.Mods;
            }

            componentpool.SpecialComponentType = KMComponentPool.SpecialComponentTypeEnum.None;
        }

        if (Source == "none")
        {
            if (pool.Modules == null)
            {
                Log("Source was set to None but no Modules parameter found in the mission located at {0}.", mission.Path);
                return(null);
            }

            List <string> modded = new List <string>();
            List <KMComponentPool.ComponentTypeEnum> vanilla = new List <KMComponentPool.ComponentTypeEnum>();

            foreach (string module in pool.Modules)
            {
                if (Enum.IsDefined(typeof(KMComponentPool.ComponentTypeEnum), module))
                {
                    if (module != "Empty" && module != "Timer")
                    {
                        vanilla.Add((KMComponentPool.ComponentTypeEnum)Enum.Parse(typeof(KMComponentPool.ComponentTypeEnum), module));
                    }
                }
                else
                {
                    modded.Add(module);
                }
            }

            bool hasModded = modded.Count > 0;
            if (hasModded)
            {
                componentpool.ModTypes = modded;
            }
            bool hasVanilla = vanilla.Count > 0;
            componentpool.ComponentTypes = hasVanilla ? vanilla : new List <KMComponentPool.ComponentTypeEnum>();

            if (hasVanilla && !hasModded)
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Base;
            }
            else if (!hasVanilla && hasModded)
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Mods;
            }
            else
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Base | KMComponentPool.ComponentSource.Mods;
            }

            componentpool.SpecialComponentType = KMComponentPool.SpecialComponentTypeEnum.None;
        }
        else
        {
            if (!pool.Base && !pool.Mods)
            {
                Log("A source besides None was used but has both base and mods disabled in the mission located at {0}. Skipping pool.", mission.Path);
                return(null);
            }

            if (pool.Base && !pool.Mods)
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Base;
            }
            else if (!pool.Base && pool.Mods)
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Mods;
            }
            else
            {
                componentpool.AllowedSources = KMComponentPool.ComponentSource.Base | KMComponentPool.ComponentSource.Mods;
            }
            componentpool.ComponentTypes = new List <KMComponentPool.ComponentTypeEnum>();

            if (Source == "solvable")
            {
                if (pool.Mods)
                {
                    componentpool.ModTypes = new List <string>();
                    foreach (KMBombModule module in GetAllModObjects <KMBombModule>())
                    {
                        if (pool.Blacklist == null || !pool.Blacklist.Contains(module.ModuleType))
                        {
                            componentpool.ModTypes.Add(module.ModuleType);
                        }
                    }
                }

                if (pool.Base)
                {
                    componentpool.ComponentTypes = new List <KMComponentPool.ComponentTypeEnum>();
                    foreach (string name in Enum.GetNames(typeof(KMComponentPool.ComponentTypeEnum)))
                    {
                        if (!name.StartsWith("Needy") && name != "Empty" && name != "Timer" && (pool.Blacklist == null || !pool.Blacklist.Contains(name)))
                        {
                            componentpool.ComponentTypes.Add((KMComponentPool.ComponentTypeEnum)Enum.Parse(typeof(KMComponentPool.ComponentTypeEnum), name));
                        }
                    }
                }
            }
            else if (Source == "needy")
            {
                if (pool.Mods)
                {
                    componentpool.ModTypes = new List <string>();
                    foreach (KMNeedyModule module in GetAllModObjects <KMNeedyModule>())
                    {
                        if (pool.Blacklist == null || !pool.Blacklist.Contains(module.ModuleType))
                        {
                            componentpool.ModTypes.Add(module.ModuleType);
                        }
                    }
                }

                if (pool.Base)
                {
                    componentpool.ComponentTypes = new List <KMComponentPool.ComponentTypeEnum>();
                    foreach (string name in Enum.GetNames(typeof(KMComponentPool.ComponentTypeEnum)))
                    {
                        if (name.StartsWith("Needy") && (pool.Blacklist == null || !pool.Blacklist.Contains(name)))
                        {
                            componentpool.ComponentTypes.Add((KMComponentPool.ComponentTypeEnum)Enum.Parse(typeof(KMComponentPool.ComponentTypeEnum), name));
                        }
                    }
                }
            }
            else
            {
                Log("Unkown source format of {0} was found in the mission located at {1}.", pool.Source, mission.Path);
                return(null);
            }
        }

        componentpool.Count = pool.Count;

        return(componentpool);
    }
 private string GetMembers(CustomGroup item)
 {
     string result = string.Empty;
     if (item.Members != null)
     {
         foreach (Staff staff in item.Members)
         {
             result = result + staff.Uid + ":";
         }
     }
     return result;
 }
Ejemplo n.º 28
0
        public string UserDataSynchronization(string appType)
        {
            var Relation    = JsonConvert.DeserializeObject <List <tbl_FriendRelation> >(_mysqlDB.GetFriendRelationList(_userService.UserId));
            var CustomGroup = JsonConvert.DeserializeObject <List <tbl_FriendGroups> >(_mysqlDB.GetFriendGroupList(_userService.UserId));

            if (CustomGroup == null)
            {
                CustomGroup = new List <tbl_FriendGroups>();
            }
            CustomGroup.Add(new tbl_FriendGroups
            {
                GroupID       = Guid.Empty.ToString(),
                GroupName     = "陌生人",
                GroupCategory = 3,
                GroupType     = 0,
                GroupImage    = "DefaultImg/sytb/default12.png",
                GroupRemark   = "陌生人",
                GroupUserID   = _userService.UserId,
                GroupDate     = DateTime.Now,
            });
            var InitData = new
            {
                Data = new
                {
                    //*用户版本号要大于变更中最后一个版本号
                    UserVersion = new
                    {
                        UserID  = _userService.UserId,
                        Version = 1000
                    },
                    UserDataDict = UserDataDict(),
                    DeskTopIcon  = DeskTopIcon(appType),
                    FriendGroup  = CustomGroup,
                    FriendList   = Relation
                },
                Status  = 200,
                Message = "用户数据初始化成功"
            };
            var BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;
            var FileDirectory = BaseDirectory + "UserData\\" + _userService.UserId;

            using (FileStream fs = new FileStream(FileDirectory, FileMode.OpenOrCreate))
            {
                //获得字节数组
                byte[] data = Encoding.Default.GetBytes(JsonConvert.SerializeObject(InitData));
                //开始写入
                fs.Write(data, 0, data.Length);
                //清空缓冲区、关闭流
                fs.Flush();
            }
            if (File.Exists(FileDirectory))
            {
                //var cipherText = Request.Headers.GetValues("cipherText").ToList()[0];
                //CipherText cipObject = JsonConvert.DeserializeObject<CipherText>(cipherText);
                new ZipHelper().ZipManyFilesOrDictorys
                (
                    new List <string>()
                {
                    FileDirectory
                },
                    FileDirectory + ".zip",
                    _userService.UserId
                );
                File.Delete(FileDirectory);
                var FileByte = File.ReadAllBytes(FileDirectory + ".zip");
                var config   = CicadaFacade.Container.Resolve <IConfigurationDataRespository>();
                return(config.Get("Cicada.FileSystem.UrlPrefix") + _fileService.Upload(FileByte, "zip"));
            }
            return(string.Empty);
        }