Exemplo n.º 1
0
 public static void AddRoomBots(int rid, List<int> roomBotsIDs)
 {
     IHubContext _Rcontext = GlobalHost.ConnectionManager.GetHubContext<ChatRoomHub>();
     RoomBot bllRoomBot = new BLL.RoomBot();
     foreach (int roomBotID in roomBotsIDs)
     {
         Info.RoomBot bot = bllRoomBot.GetbyID(roomBotID);
         if (bot != null)
         {
             _Rcontext.Clients.Group(rid.ToString()).addRoomBot(rid, bot);
         }
     }
 }
Exemplo n.º 2
0
 public void SaveRoomBots(string roomBots)
 {
     BLL.RoomBot rmBots = new BLL.RoomBot();
     string result = "";
     try
     {
         List<Info.RoomBot> lst = Helper.JsonConverter.Deserialize<List<Info.RoomBot>>(roomBots);
         rmBots.Save(lst);
         var resultObj = new { status = true, error = "", bots = lst };
         result = Newtonsoft.Json.JsonConvert.SerializeObject(resultObj);
     }
     catch (Exception ex)
     {
         var resultObj = new { status = false, error = ex.Message };
         result = Newtonsoft.Json.JsonConvert.SerializeObject(resultObj);
     }
     HttpContext.Current.Response.ContentType = "application/json; charset=utf-8";
     HttpContext.Current.Response.Write(result);
 }
Exemplo n.º 3
0
        public void LoadRoomBots(int roomId)
        {
            BLL.RoomBot rmBots = new BLL.RoomBot();
            List<Info.RoomBot> lst = rmBots.GetByRoomID(roomId);

            string result = Newtonsoft.Json.JsonConvert.SerializeObject(lst);
            HttpContext.Current.Response.ContentType = "application/json; charset=utf-8";
            HttpContext.Current.Response.Write(result);
        }
Exemplo n.º 4
0
        public static Helper.ChatRoom GetRoomInfo(int id, bool isTemp, Room room)
        {
            Helper.ChatRoom roomObject = new Helper.ChatRoom();
            roomObject.ID = id;
            roomObject.Type = "Room";
            roomObject.IsTemp = isTemp;
            roomObject.Message = "";
            roomObject.AdminMessage = "";

            //Room info
            roomObject.Name = room.Name;
            roomObject.RoomTopic = room.RoomTopic;
            roomObject.fbURL = room.FbURL;
            roomObject.tURL = room.TURL;
            roomObject.utURL = room.UtURL;
            roomObject.OpenCams = room.OpenCams;
            if (!room.IsColumnNull("CreatedBy"))
                roomObject.CreatedBy = room.CreatedBy;

            RoomBot Allbots = new RoomBot();
            roomObject.RoomBots = Allbots.GetByRoomID(id);

            if (!room.IsColumnNull("CreatedDate"))
                roomObject.CreatedDate = room.CreatedDate;

            //Room settings
            roomObject.Settings.EnableCam = room.EnableCam;
            roomObject.Settings.EnableMic = room.EnableMic;
            roomObject.Settings.MarkOnLoginWithoutWrite = room.MarkOnLoginWithoutWrite;
            roomObject.Settings.MarkOnLoginWithWrite = room.MarkOnLoginWithWrite;
            roomObject.Settings.EnableMicForAdminsOnly = room.EnableMicForAdminsOnly;
            if (room.RoomType.RoomTypeSpecDuration.RoomTypeSpecID > 1) // not a free room
                roomObject.Settings.CamCount = 8;
            else
                roomObject.Settings.CamCount = 4;
            roomObject.Settings.MaxMic = room.RoomType.RoomTypeSpecDuration.RoomTypeSpec.MicCount;
            roomObject.Settings.TypeID = room.RoomType.RoomTypeSpecDuration.RoomTypeSpecID;
            roomObject.Settings.Color = room.RoomType.RoomTypeSpecDuration.RoomTypeSpec.Color;
            //Room Members
            RoomMember roomMember = new RoomMember();
            if (!roomMember.LoadByPrimaryKey(BLL.Member.CurrentMember.MemberID, id))
            {
                roomMember.AddNew();
                roomMember.MemberID = BLL.Member.CurrentMember.MemberID;
                roomMember.RoomID = id;
            }
            roomMember.InRoom = true;
            roomMember.LastJoinDate = DateTime.Now;
            if (BLL.Member.CurrentMember.Status == (int)Helper.Enums.MemberStatus.Offline && Helper.Admin.HasRole(Helper.Enums.MemberRoles.InvisibleInRoom.ToString()))
                roomMember.InRoom = false;
            if (!room.IsColumnNull("CreatedBy"))
            {
                if (roomMember.MemberID == room.CreatedBy)
                    roomMember.RoomMemberLevelID = (int)Helper.Enums.RoomMemberLevel.Owner;
            }
            roomMember.Save();
            roomObject.CurrentMemberID = BLL.Member.CurrentMemberID;

            List<int> connectedIDs = ChatRoomHub.ConnectedUsers.Select(m => m.MemberID).ToList();
            roomObject.Members = roomMember.LoadWithSettings(id, roomObject.CurrentMemberID, null, connectedIDs);
            var currentMemberSettings = roomObject.Members.First(m => m.MemberID == roomObject.CurrentMemberID);
            if (currentMemberSettings != null)
            {
                if (room.MarkOnLoginWithWrite)
                {
                    currentMemberSettings.IsMarked = true;
                    currentMemberSettings.CanWrite = true;
                }
                if (room.MarkOnLoginWithoutWrite)
                {
                    currentMemberSettings.IsMarked = true;
                    currentMemberSettings.CanWrite = false;
                }
            }
            // load owner / admins
            //roomObject.Admins = roomMember.GetAdminsMembersByRoomID(id);

            // load cat & subcat

            Category cat = new Category();
            if (!room.IsColumnNull("CategoryID"))
            {
                cat.LoadByPrimaryKey(room.CategoryID);
                roomObject.CategoryName = cat.Name;
            }

            SubCategory scat = new SubCategory();
            if (!room.IsColumnNull("SubCategoryID"))
            {
                scat.LoadByPrimaryKey(room.SubCategoryID);
                roomObject.SubCategoryName = scat.Name;
            }
            else
            {
                roomObject.SubCategoryName = "لا يوجد";
            }

            //member level change
            roomObject.MemberLevels = Helper.EnumUtil.GetValues<Helper.Enums.RoomMemberLevel>().Where(l => (int)l < currentMemberSettings.MemberLevelID).Select(l => new
            {
                ID = (int)l,
                Name = Helper.StringEnum.GetStringValue(l)
            }).ToList();

            //messages
            //roomObject.MessageHistory = new RoomMessages().GetLatestMessags(id, 0);
            roomObject.MessageHistory = new List<Helper.ChatMessage>() { };
            ///////////////////////////

            Gift allgifts = new Gift();
            allgifts.LoadAll();
            roomObject.Gifts = allgifts.DefaultView.Table.AsEnumerable().Select(m => new { giftid = m["GiftID"], name = m["Name"], price = m["Price_Point"], picPath = m["PicPath"], AudioPath = m["AudioPath"] }).ToList();

            //bots
            RoomBot bllRoomBot = new BLL.RoomBot();
            //welcome bot
            List<Info.RoomBot> bots = bllRoomBot.GetByRoomIDandBotID(id, Helper.Enums.Bot.Welcome);
            if (bots.Count > 0)
            {
                Info.WelcomeBot infoWelcomeBot = (Info.WelcomeBot)bots.First().Settings;
                roomObject.WelcomeBot = infoWelcomeBot;
            }

            return roomObject;
        }
Exemplo n.º 5
0
 private static bool ValidateMemberLoginTypeBot(int id, out string acceptedTypes)
 {
     bool isValidMemberType = true;
     acceptedTypes = "";
     BLL.RoomBot bllbot = new BLL.RoomBot();
     List<Info.RoomBot> lstBots = bllbot.GetByRoomIDandBotID(id, Helper.Enums.Bot.MemberTypeLogin);
     if (lstBots.Count > 0)
     {
         Info.MemberTypeLogin infoBot = lstBots.FirstOrDefault().Settings as Info.MemberTypeLogin;
         if (infoBot != null)
         {
             List<string> typeNames = (from s in infoBot.AcceptedMemberTypes
                                       select Helper.StringEnum.GetStringValue(Helper.EnumUtil.ParseEnum<Helper.Enums.MemberType>(Convert.ToInt32(s)))).ToList();
             acceptedTypes = String.Join(",", typeNames);
             switch (BLL.Member.CurrentMember.MemberType.MemberTypeSpecDuration.MemberTypeSpecID)
             {
                 case (int)Helper.Enums.TypeSpec.Free:
                     isValidMemberType = infoBot.AcceptedMemberTypes.Contains(Convert.ToString((int)Helper.Enums.MemberType.Free));
                     break;
                 case (int)Helper.Enums.TypeSpec.Pink1:
                 case (int)Helper.Enums.TypeSpec.Pink2:
                     isValidMemberType = infoBot.AcceptedMemberTypes.Contains(Convert.ToString((int)Helper.Enums.MemberType.Upgraded));
                     break;
                 case (int)Helper.Enums.TypeSpec.VIP:
                     isValidMemberType = infoBot.AcceptedMemberTypes.Contains(Convert.ToString((int)Helper.Enums.MemberType.VIP));
                     break;
             }
         }
     }
     return isValidMemberType;
 }
Exemplo n.º 6
0
        public void ShowRoomProgram(int roomId)
        {
            BLL.RoomBot rmBots = new BLL.RoomBot();
            List<Info.RoomBot> lst = rmBots.GetByRoomIDandBotID(roomId, Helper.Enums.Bot.RoomProgram);
            if (lst.Count == 0)
                return;

            SubmitProgram(lst.FirstOrDefault());
        }
Exemplo n.º 7
0
 private void SubmitRoomProgramBotSchedule()
 {
     BLL.RoomBot bllRoomBot = new RoomBot();
     List<Info.RoomBot> lstBots = bllRoomBot.GetByBotID(Helper.Enums.Bot.RoomProgram);
     Info.RoomProgram infoSetting;
     bool isSend;
     foreach (var infoBot in lstBots)
     {
         isSend = false;
         infoSetting = (Info.RoomProgram)infoBot.Settings;
         if (infoSetting.ProgramSchedule == Helper.Enums.RoomBotSchedule.FiveMinutes)
         {
             isSend = true;
         }
         else if (infoSetting.ProgramSchedule == Helper.Enums.RoomBotSchedule.TenMinutes && timerTricks % 2 == 0)
         {
             isSend = true;
         }
         else if (infoSetting.ProgramSchedule == Helper.Enums.RoomBotSchedule.FifteenMinutes && timerTricks % 3 == 0)
         {
             isSend = true;
         }
         else if (infoSetting.ProgramSchedule == Helper.Enums.RoomBotSchedule.ThirtyMinutes && timerTricks % 6 == 0)
         {
             isSend = true;
         }
         else if (infoSetting.ProgramSchedule == Helper.Enums.RoomBotSchedule.FifteenMinutes && timerTricks % 12 == 0)
         {
             isSend = true;
         }
         if (isSend)
         {
             Chat2Connect.services.Services.SubmitProgram(infoBot);
         }
     }
 }