Example #1
0
        public static string Display(this ActivityTypes type)
        {
            switch (type)
            {
            case ActivityTypes.None:
                return("无");

            case ActivityTypes.Schedule:
                return("工作安排");

            case ActivityTypes.OrderIssue:
                return("订单问题");

            case ActivityTypes.Personal:
                return("私人");

            case ActivityTypes.Open:
                return("公开");

            case ActivityTypes.Discussion:
                return("研讨");

            case ActivityTypes.Other:
                return("其它");

            default:
                return("未知");
            }
        }
Example #2
0
 public override IEnumerable <MenuItem> GetDynamicMenuItems()
 {
     if (this.userSecurityContext.CanAccess <ActivityTypes>())
     {
         yield return(ActivityTypes.Button("Configuration").AsMenuItem(System));
     }
 }
Example #3
0
 public LiteVoiceActivity(ulong guildId, ulong userId, ulong channelId, ActivityTypes activity)
 {
     Timestamp = DateTime.UtcNow;
     GuildId   = guildId;
     UserId    = userId;
     ChannelId = channelId;
     Activity  = activity;
 }
        private void RegistrationEvent(IActivityRegister activityRegister, IRepository repository, ActivityTypes activityType)
        {
            if (repository == null)
                throw new ArgumentNullException(nameof(repository));

            var activity = ActivityCreate(activityRegister.ObjectInfo, activityType);
            repository.Add(activity);
        }
 public GameActivityConfig(string activityId, string title,
                           ActivityTypes activityType,
                           List <OneRoomActivityConfig> roomConfigs)
 {
     ActivityId   = activityId;
     Title        = title;
     ActivityType = activityType;
     RoomConfigs  = roomConfigs;
 }
Example #6
0
        internal async Task PageAppearingCommandFunction()
        {
            if (!_dbService.Initialized())
            {
                await _dbService.InitializeAsync();
            }

            var typesList = await _dbService.GetActivityTypesAsync();

            typesList.ForEach(p => ActivityTypes.Add(p));
        }
Example #7
0
 public static Tabstrip GetConfigurationTabs <T>()
 {
     return(new Tabstrip
     {
         CurrentTab = typeof(T).GetFormId(),
         Tabs = new List <Tab>
         {
             ActivityTypes.Button("Activity types").AsTab(),
             LeaveTypes.Button("Leave types").AsTab()
         }
     });
 }
        private UserActivity ActivityCreate(string objectInfo, ActivityTypes activityType)
        {
            var activity = new UserActivity
            {
                Id = Guid.NewGuid(),
                ObjectInfo = objectInfo,
                UserName = _userInfoService.UserName,
                RemoteAddr = _userInfoService.RemoteAddr,
                ActivityType = activityType,
                ActivityDate = DateTime.UtcNow
            };

            return activity;
        }
Example #9
0
        public bool RegisterActivity(ActivityTypes oActivityType, string sDescription, ActivityObject oObjectID, int iObjectReferenceID, Guid oUserGUID, string sUserName)
        {
            base.AddNew();
            base.ActivityTypeID    = (int)oActivityType;
            base.Description       = sDescription;
            base.ObjectID          = (int)oObjectID;
            base.ObjectReferenceID = iObjectReferenceID;
            base.UserID            = DL_WEB.DAL.Client.User.Instance.GetUserIDByGUID(oUserGUID);
            base.UserName          = sUserName;

            Save();

            return(true);
        }
        private void ConfirmNewActivity()
        {
            var newActivity = new Activity {
                Name = NewActivityName, ActivityName = NewActivityType.Name
            };

            Activities.Add(new ActivityViewModel(newActivity));

            savedActivities.SaveAll(GetActivitiesRaw());

            NewActivityType  = ActivityTypes.FirstOrDefault();
            NewActivityName  = String.Empty;
            IsAddingActivity = false;
        }
Example #11
0
 internal static string ActivityTypeString(ActivityTypes actType)
 {
     if (actType != ActivityTypes.Unspecified)
     {
         if (actType == ActivityTypes.StatusUpdate)
         {
             return("Status Update");
         }
         else
         {
             return(actType.ToString());
         }
     }
     return(null);
 }
Example #12
0
        public void Register(ActivityTypes activityType, IActivity activity)
        {
            //activity type cant be null

            if (activity == null)
            {
                throw new ArgumentNullException("Activity cannot be null.");
            }


            if (!activityTable.ContainsKey(activityType))
            {
                activityTable[activityType] = activity;
            }
        }
Example #13
0
        public override async Task <ActivityTypes> SearchActivityTypes(SearchActivityTypesRequest req, ServerCallContext context)
        {
            try
            {
                var searchedActivityTypes = await _activityManager.SearchActivityTypesAsync(req.AgencyId, req.ActivityTypeName);

                var activityTypes = new ActivityTypes();
                activityTypes.ActivityTypes_.AddRange(searchedActivityTypes);
                return(activityTypes);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
Example #14
0
        /// <summary>
        /// 开启活动并返回自增id
        /// </summary>
        /// <param name="group">群组</param>
        /// <param name="type">活动类型</param>
        /// <param name="endTime">结束时间(预计)</param>
        /// <returns></returns>
        public int OpenActivity(string group, ActivityTypes type, DateTime endTime)
        {
            var info = new Data.Pikachu.Models.GroupActivity()
            {
                ActivityStateType = ActivityStateTypes.Open,
                Group             = group,
                ActivityType      = type,
                PredictEndTime    = endTime,
            };

            PikachuDataContext.GroupActivities.Add(info);

            PikachuDataContext.SaveChanges();

            return(info.Id);
        }
Example #15
0
        /// <summary>
        /// 开启活动并返回自增id
        /// </summary>
        /// <param name="group">群组</param>
        /// <param name="type">活动类型</param>
        /// <param name="endTime">结束时间(预计)</param>
        /// <returns></returns>
        public async Task <int> OpenActivityAsync(string group, ActivityTypes type, DateTime endTime)
        {
            var info = new GroupActivity()
            {
                ActivityStateType = ActivityStateTypes.Open,
                Group             = group,
                ActivityType      = type,
                PredictEndTime    = endTime,
            };

            PikachuDataContext.GroupActivities.Add(info);

            await PikachuDataContext.SaveChangesAsync();

            return(info.Id);
        }
Example #16
0
        public IActivity CreateActivity(ActivityTypes activityType, string id, decimal cost)
        {
            //activity type cant be null

            IActivity activity = null;

            if (activityTable.ContainsKey(activityType))
            {
                activity = (Activity)activityTable[activityType];
            }
            else
            {
                throw new ArgumentException("Activity does not exist. Has it been registered?");
            }

            return(activity.CreateActivity(id, cost));
        }
Example #17
0
        public ResponseDTO LoadActivityTypes(APICredentials request)
        {
            ResponseDTO resp = new ResponseDTO();

            using (ProjectManagementBLL objProjectManagementBLL = new ProjectManagementBLL())
            {
                try
                {
                    APICredentialsBLL credentialsBLL = new APICredentialsBLL();
                    credentialsBLL.UserName = request.APIUserName;
                    credentialsBLL.Password = request.APIPassword;
                    if (!new CommonMethods().ValidateRequest(credentialsBLL))
                    {
                        resp.ResponseCode    = ResponseCodes.Failed;
                        resp.ResponseMessage = ResponseMessages.InvalidCredentials;
                    }
                    else
                    {
                        DataTable            dtRecord = new ActivityBLL().GetAllActivityTypes(objProjectManagementBLL);
                        List <ActivityTypes> acttypes = new List <ActivityTypes>();
                        if (dtRecord.Rows.Count > 0)
                        {
                            foreach (DataRow row in dtRecord.Rows)
                            {
                                ActivityTypes acttyp = new ActivityTypes();
                                acttyp.ActTypeID    = int.Parse(row["ActTypeID"].ToString());
                                acttyp.ActivityType = row["ActivityType"].ToString();
                                acttypes.Add(acttyp);
                            }
                        }
                        resp.ResponseCode               = ResponseCodes.Success;
                        resp.ResponseMessage            = ResponseMessages.Success;
                        resp.ResponseData               = new ResponseData();
                        resp.ResponseData.activitytypes = acttypes;
                    }
                }
                catch (Exception ex)
                {
                    resp.ResponseCode    = ResponseCodes.Failed;
                    resp.ResponseMessage = ex.Message;
                }
            }
            return(resp);
        }
        public void Initialize()
        {
            savedActivities.Initialize();

            var activities = savedActivities.LoadAll();

            foreach (var activity in activities)
            {
                Activities.Add(new ActivityViewModel(activity));
            }

            var activityTypes = activityLoader.LoadAll();

            foreach (var type in activityTypes)
            {
                ActivityTypes.Add(new ActivityTypeViewModel(type));
            }

            NewActivityType = ActivityTypes.FirstOrDefault();
            NewActivityName = String.Empty;
        }
Example #19
0
        public WorkoutTimerPageModel()
        {
            workoutTimer          = new DispatcherTimer();
            workoutTimer.Interval = TimeSpan.FromSeconds(1);
            workoutTimer.Tick    += workoutTimer_Tick;
            _record = new User.Record();
            _record.StartRecord();
            _counter = new Helpers.CaloriesCounterHelper(User.AccountsManager.Instance.CurrentUser);
            gadgetHelper.HeartRateChanged   += gadgetHelper_HeartRateChanged;
            gadgetHelper.GadgetStateChanged += gadgetHelper_GadgetStateChanged;

            heartChartData = new ObservableCollection <ValuePair>();
            for (int i = heartChartData.Count; i < 20; i++)
            {
                heartChartData.Add(new ValuePair(i, 0));
            }

            var _user = User.AccountsManager.Instance.CurrentUser;

            if (_user != null)
            {
                bool _bFound = false;
                foreach (User.DailyRecord daily in _user.DailyRecords)
                {
                    if (_bFound)
                    {
                        break;
                    }
                    foreach (User.Record record in daily.Records)
                    {
                        if (record.ActivityType != 0)
                        {
                            SelectedIndex = ActivityTypes.FindIndex(r => r.Equals(Common.CommonMethods.activityTypes[record.ActivityType]));
                            _bFound       = true;
                            break;
                        }
                    }
                }
            }
        }
Example #20
0
        public static string GetActivityChineseName(ActivityTypes type)
        {
            string activityName = type.ToString();

            switch (type)
            {
            case ActivityTypes.InputFirst:
                activityName = "首充大礼";
                break;

            case ActivityTypes.InputFanLi:
                activityName = "充值返利";
                break;

            case ActivityTypes.InputJiaSong:
                activityName = "充值加送";
                break;

            case ActivityTypes.InputKing:
                activityName = "充值王";
                break;

            case ActivityTypes.LevelKing:
                activityName = "冲级王";
                break;

            case ActivityTypes.EquipKing:
                activityName = "装备王";
                break;

            case ActivityTypes.HorseKing:
                activityName = "坐骑王";
                break;

            case ActivityTypes.JingMaiKing:
                activityName = "经脉王";
                break;

            case ActivityTypes.JieriDaLiBao:
                activityName = "节日大礼包";
                break;

            case ActivityTypes.JieriDengLuHaoLi:
                activityName = "节日登录豪礼";
                break;

            case ActivityTypes.JieriVIP:
                activityName = "节日VIP大礼";
                break;

            case ActivityTypes.JieriCZSong:
                activityName = "节日充值送礼";
                break;

            case ActivityTypes.JieriLeiJiCZ:
                activityName = "节日累计充值大礼";
                break;

            case ActivityTypes.JieriZiKa:
                activityName = "节日字卡换礼盒";
                break;

            case ActivityTypes.JieriPTXiaoFeiKing:
                activityName = "节日消费王";
                break;

            case ActivityTypes.JieriPTCZKing:
                activityName = "节日充值王";
                break;

            case ActivityTypes.JieriBossAttack:
                activityName = "节日Boss攻城";
                break;

            case (ActivityTypes)18:
            case (ActivityTypes)19:
            case ActivityTypes.HeFuShopLimit:
            case ActivityTypes.HeFuAwardTime:
            case ActivityTypes.XingYunChouJiang:
            case ActivityTypes.YuDuZhuanPanChouJiang:
            case ActivityTypes.NewZoneUpLevelMadman:
            case ActivityTypes.NewZoneRechargeKing:
            case ActivityTypes.NewZoneConsumeKing:
            case ActivityTypes.NewZoneBosskillKing:
            case ActivityTypes.NewZoneFanli:
            case ActivityTypes.TotalCharge:
            case ActivityTypes.TotalConsume:
            case ActivityTypes.JieriTotalConsume:
            case ActivityTypes.JieriDuoBei:
            case ActivityTypes.JieriQiangGou:
            case ActivityTypes.HeFuLuoLan:
            case ActivityTypes.SpecActivity:
            case ActivityTypes.EverydayActivity:
            case ActivityTypes.SpecPriorityActivity:
            case (ActivityTypes)65:
            case ActivityTypes.JieriFuLi:
            case ActivityTypes.JieRiHongBao:
            case ActivityTypes.JieRiChongZhiHongBao:
            case ActivityTypes.JieRiHongBaoKing:
                break;

            case ActivityTypes.HeFuLogin:
                activityName = "合服登陆豪礼";
                break;

            case ActivityTypes.HeFuTotalLogin:
                activityName = "合服累计登陆";
                break;

            case ActivityTypes.HeFuRecharge:
                activityName = "合服充值返利";
                break;

            case ActivityTypes.HeFuPKKing:
                activityName = "合服PK王大礼";
                break;

            case ActivityTypes.HeFuBossAttack:
                activityName = "合服Boss攻城";
                break;

            case ActivityTypes.MeiRiChongZhiHaoLi:
                activityName = "每日充值豪礼";
                break;

            case ActivityTypes.ChongJiLingQuShenZhuang:
                activityName = "充级领取神装";
                break;

            case ActivityTypes.ShenZhuangJiQingHuiKui:
                activityName = "神装激情回赠";
                break;

            case ActivityTypes.XinCZFanLi:
                activityName = "新区充值返利";
                break;

            case ActivityTypes.OneDollarBuy:
                activityName = "1元直购";
                break;

            case ActivityTypes.OneDollarChongZhi:
                activityName = "1元充值";
                break;

            case ActivityTypes.InputFanLiNew:
                activityName = "3周年充值返利";
                break;

            case ActivityTypes.JieriGive:
                activityName = "节日赠送";
                break;

            case ActivityTypes.JieriGiveKing:
                activityName = "节日赠送王";
                break;

            case ActivityTypes.JieriRecvKing:
                activityName = "节日收取王";
                break;

            case ActivityTypes.JieriWing:
                activityName = "节日翅膀返利";
                break;

            case ActivityTypes.JieriAddon:
                activityName = "节日追加返利";
                break;

            case ActivityTypes.JieriStrengthen:
                activityName = "节日强化返利";
                break;

            case ActivityTypes.JieriAchievement:
                activityName = "节日成就返利";
                break;

            case ActivityTypes.JieriMilitaryRank:
                activityName = "节日军衔返利";
                break;

            case ActivityTypes.JieriVIPFanli:
                activityName = "节日VIP返利";
                break;

            case ActivityTypes.JieriAmulet:
                activityName = "节日护身符返利";
                break;

            case ActivityTypes.JieriArchangel:
                activityName = "节日大天使返利";
                break;

            case ActivityTypes.JieriLianXuCharge:
                activityName = "节日连续充值";
                break;

            case ActivityTypes.JieriMarriage:
                activityName = "节日婚姻返利";
                break;

            case ActivityTypes.JieriRecv:
                activityName = "节日收取";
                break;

            case ActivityTypes.JieriInputPointsExchg:
                activityName = "节日充值点数兑换";
                break;

            case ActivityTypes.JieriChongZhiQiangGou:
                activityName = "节日充值抢购";
                break;

            case ActivityTypes.JieriVIPYouHui:
                activityName = "节日VIP优惠";
                break;

            case ActivityTypes.DanBiChongZhi:
                activityName = "单笔充值";
                break;

            case ActivityTypes.JieRiMeiRiLeiJi:
                activityName = "节日每日累充大礼";
                break;

            case ActivityTypes.JieriSuperInputFanLi:
                activityName = "节日超级充值返利";
                break;

            case ActivityTypes.JieRiHuiJi:
                activityName = "节日徽记返利";
                break;

            case ActivityTypes.JieRiFuWen:
                activityName = "节日符文返利";
                break;

            case ActivityTypes.JieriPCKingEveryDay:
                activityName = "节日每日平台充值王";
                break;

            default:
                switch (type)
                {
                case ActivityTypes.TriennialRegressSignAward:
                    activityName = "3周年回归签到";
                    break;

                case ActivityTypes.TriennialRegressTotalRechargeAward:
                    activityName = "3周年回归累计充值";
                    break;

                case ActivityTypes.TriennialRegressDayBuy:
                    activityName = "3周年回归每日直购";
                    break;

                case ActivityTypes.TriennialRegressStore:
                    activityName = "3周年回归专属商城";
                    break;
                }
                break;
            }
            return(activityName);
        }
Example #21
0
 /// <summary>
 /// Registers the activity.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="activityType">Type of the activity.</param>
 public static void RegisterActivity <T>(ActivityTypes activityType) where T : IActivity
 {
     _instance._activities.Add(activityType.Name, typeof(T));
 }
Example #22
0
        public override bool CheckCondition(GameClient client, int extTag)
        {
            AwardItem myAwardItem = null;

            if (this.AwardDict.ContainsKey(extTag))
            {
                myAwardItem = this.AwardDict[extTag];
            }
            bool result;

            if (null == myAwardItem)
            {
                result = false;
            }
            else
            {
                ActivityTypes activityType = (ActivityTypes)this.ActivityType;
                switch (activityType)
                {
                case ActivityTypes.JieriWing:
                    if (client.ClientData.MyWingData == null || client.ClientData.MyWingData.Using == 0)
                    {
                        return(false);
                    }
                    if (client.ClientData.MyWingData.WingID < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    if (client.ClientData.MyWingData.WingID == myAwardItem.MinAwardCondionValue && client.ClientData.MyWingData.ForgeLevel < myAwardItem.MinAwardCondionValue2)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriAddon:
                    if (client.UsingEquipMgr.GetUsingEquipAllAppendPropLeva() < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriStrengthen:
                    if (client.UsingEquipMgr.GetUsingEquipAllForge() < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriAchievement:
                    if (ChengJiuManager.GetChengJiuLevel(client) < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriMilitaryRank:
                    if (GameManager.ClientMgr.GetShengWangLevelValue(client) < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriVIPFanli:
                    if (client.ClientData.VipLevel < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriAmulet:
                {
                    GoodsData hufugoods = client.UsingEquipMgr.GetGoodsDataByCategoriy(client, 22);
                    if (null == hufugoods)
                    {
                        return(false);
                    }
                    SystemXmlItem systemGoods = null;
                    if (!GameManager.SystemGoods.SystemXmlItemDict.TryGetValue(hufugoods.GoodsID, out systemGoods))
                    {
                        return(false);
                    }
                    int nSuitID = systemGoods.GetIntValue("SuitID", -1);
                    if (nSuitID < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;
                }

                case ActivityTypes.JieriArchangel:
                    if (client.UsingEquipMgr.GetUsingEquipArchangelWeaponSuit() < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                case ActivityTypes.JieriLianXuCharge:
                    break;

                case ActivityTypes.JieriMarriage:
                    if (client.ClientData.MyMarriageData == null || -1 == client.ClientData.MyMarriageData.byMarrytype || (int)client.ClientData.MyMarriageData.byGoodwilllevel < myAwardItem.MinAwardCondionValue)
                    {
                        return(false);
                    }
                    goto IL_3A3;

                default:
                    switch (activityType)
                    {
                    case ActivityTypes.JieRiHuiJi:
                    {
                        EmblemStarInfo starInfo = HuiJiManager.getInstance().GetHuiJiStartInfo(client);
                        if (null == starInfo)
                        {
                            return(false);
                        }
                        if (starInfo.EmblemLevel < myAwardItem.MinAwardCondionValue)
                        {
                            return(false);
                        }
                        if (starInfo.EmblemLevel == myAwardItem.MinAwardCondionValue && starInfo.EmblemStar < myAwardItem.MinAwardCondionValue2)
                        {
                            return(false);
                        }
                        goto IL_3A3;
                    }

                    case ActivityTypes.JieRiFuWen:
                        if (ShenShiManager.getInstance().GetCurrentTabTotalLevel(client) < myAwardItem.MinAwardCondionValue)
                        {
                            return(false);
                        }
                        goto IL_3A3;
                    }
                    break;
                }
                return(false);

IL_3A3:
                result = true;
            }
            return(result);
        }
Example #23
0
 public Activity(ActivityTypes activityType, DateTime date)
 {
     ActivityType = activityType;
     Date         = date;
     Price        = PRICE;
 }
    public static string ReplaceType(SelectedType type, int oldID, int newID, string arg)
    {
        if (!UserSession.CurrentUser.IsSystemAdmin)
        {
            return("");
        }
        switch (type)
        {
        case SelectedType.ActionTypes:
            if (ActionTypes.GetActionType(UserSession.LoginUser, oldID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            if (ActionTypes.GetActionType(UserSession.LoginUser, newID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            (new Actions(UserSession.LoginUser)).ReplaceActionType(oldID, newID);
            ActionTypes actionTypes = new ActionTypes(UserSession.LoginUser);
            actionTypes.DeleteFromDB(oldID);
            actionTypes.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.PhoneTypes:
            if (PhoneTypes.GetPhoneType(UserSession.LoginUser, oldID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            if (PhoneTypes.GetPhoneType(UserSession.LoginUser, newID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            (new PhoneNumbers(UserSession.LoginUser)).ReplacePhoneType(oldID, newID);
            PhoneTypes phoneTypes = new PhoneTypes(UserSession.LoginUser);
            phoneTypes.DeleteFromDB(oldID);
            phoneTypes.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.ProductVersionStatuses:
            if (ProductVersionStatuses.GetProductVersionStatus(UserSession.LoginUser, oldID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            if (ProductVersionStatuses.GetProductVersionStatus(UserSession.LoginUser, newID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            (new ProductVersions(UserSession.LoginUser)).ReplaceProductVersionStatus(oldID, newID);
            ProductVersionStatuses productVersionStatuses = new ProductVersionStatuses(UserSession.LoginUser);
            productVersionStatuses.DeleteFromDB(oldID);
            productVersionStatuses.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.TicketSeverities:
            if (TicketSeverities.GetTicketSeverity(UserSession.LoginUser, oldID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            if (TicketSeverities.GetTicketSeverity(UserSession.LoginUser, newID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            (new Tickets(UserSession.LoginUser)).ReplaceTicketSeverity(oldID, newID);
            TicketSeverities ticketSeverities = new TicketSeverities(UserSession.LoginUser);
            ticketSeverities.DeleteFromDB(oldID);
            ticketSeverities.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.TicketStatuses:
            TicketStatus oldStatus = TicketStatuses.GetTicketStatus(UserSession.LoginUser, oldID);
            if (oldStatus.OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            if (TicketStatuses.GetTicketStatus(UserSession.LoginUser, newID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            (new Tickets(UserSession.LoginUser)).ReplaceTicketStatus(oldID, newID);
            TicketStatuses ticketStatuses = new TicketStatuses(UserSession.LoginUser);
            ticketStatuses.DeleteFromDB(oldID);
            ticketStatuses.ValidatePositions(oldStatus.TicketTypeID);
            break;

        case SelectedType.TicketTypes:
            if (TicketTypes.GetTicketType(UserSession.LoginUser, oldID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            if (TicketTypes.GetTicketType(UserSession.LoginUser, newID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            (new Tickets(UserSession.LoginUser)).ReplaceTicketType(oldID, newID);
            TicketTypes ticketTypes = new TicketTypes(UserSession.LoginUser);

            CustomFields customFields = new CustomFields(UserSession.LoginUser);
            customFields.LoadByTicketTypeID(UserSession.LoginUser.OrganizationID, oldID);

            ticketTypes.DeleteFromDB(oldID);
            ticketTypes.ValidatePositions(UserSession.LoginUser.OrganizationID);

            int?crmLinkFieldId = null;

            foreach (CustomField customField in customFields)
            {
                try
                {
                    crmLinkFieldId = CRMLinkFields.FindIdByCustomFieldId(customField.CustomFieldID, UserSession.LoginUser);
                }
                catch (Exception ex)
                {
                    crmLinkFieldId = null;
                }

                if (crmLinkFieldId != null && crmLinkFieldId > 0)
                {
                    CRMLinkFields crmLinkFieldsDelete = new CRMLinkFields(UserSession.LoginUser);
                    crmLinkFieldsDelete.DeleteFromDB((int)crmLinkFieldId);
                }
            }

            break;

        case SelectedType.ActivityTypes:
            if (ActivityTypes.GetActivityType(UserSession.LoginUser, oldID).OrganizationID != UserSession.LoginUser.OrganizationID)
            {
                return("");
            }
            var types = Enum.GetValues(typeof(ActivityTypeEnum));
            if (newID > types.Length)
            {
                if (ActivityTypes.GetActivityType(UserSession.LoginUser, newID).OrganizationID != UserSession.LoginUser.OrganizationID)
                {
                    return("");
                }
            }
            (new Notes(UserSession.LoginUser)).ReplaceActivityType(oldID, newID);
            ActivityTypes activityTypes = new ActivityTypes(UserSession.LoginUser);
            activityTypes.DeleteFromDB(oldID);
            activityTypes.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        default:
            break;
        }
        return(GetTypesHtml(type, arg));
    }
    public static string GetTypesHtml(SelectedType type, string arg)
    {
        Organization organization = Organizations.GetOrganization(UserSession.LoginUser, UserSession.LoginUser.OrganizationID);
        DataTable    table        = new DataTable();

        table.Columns.Add("ID");
        table.Columns.Add("Name");
        table.Columns.Add("Description");
        string result = "";

        switch (type)
        {
        case SelectedType.ActionTypes:
            ActionTypes actionTypes = new ActionTypes(UserSession.LoginUser);
            actionTypes.LoadAllPositions(UserSession.LoginUser.OrganizationID);
            table.Columns.Add("Is Timed");
            foreach (ActionType actionType in actionTypes)
            {
                table.Rows.Add(new string[] { actionType.ActionTypeID.ToString(), actionType.Name, actionType.Description, actionType.IsTimed.ToString() });
            }
            break;

        case SelectedType.PhoneTypes:
            PhoneTypes phoneTypes = new PhoneTypes(UserSession.LoginUser);
            phoneTypes.LoadAllPositions(UserSession.LoginUser.OrganizationID);
            foreach (PhoneType phoneType in phoneTypes)
            {
                table.Rows.Add(new string[] { phoneType.PhoneTypeID.ToString(), phoneType.Name, phoneType.Description });
            }
            break;

        case SelectedType.ProductVersionStatuses:
            ProductVersionStatuses productVersionStatuses = new ProductVersionStatuses(UserSession.LoginUser);
            productVersionStatuses.LoadAllPositions(UserSession.LoginUser.OrganizationID);
            table.Columns.Add("Is Shipping");
            table.Columns.Add("Is Discontinued");
            foreach (ProductVersionStatus productVersionStatus in productVersionStatuses)
            {
                table.Rows.Add(new string[] { productVersionStatus.ProductVersionStatusID.ToString(), productVersionStatus.Name, productVersionStatus.Description, productVersionStatus.IsShipping.ToString(), productVersionStatus.IsDiscontinued.ToString() });
            }
            break;

        case SelectedType.TicketSeverities:
            table.Columns.Add("Visible on Portal");
            TicketSeverities ticketSeverities = new TicketSeverities(UserSession.LoginUser);
            ticketSeverities.LoadAllPositions(UserSession.LoginUser.OrganizationID);
            foreach (TicketSeverity ticketSeverity in ticketSeverities)
            {
                table.Rows.Add(new string[] { ticketSeverity.TicketSeverityID.ToString(), ticketSeverity.Name, ticketSeverity.Description, ticketSeverity.VisibleOnPortal.ToString() });
            }
            break;

        case SelectedType.TicketStatuses:
            TicketStatuses ticketStatuses = new TicketStatuses(UserSession.LoginUser);
            ticketStatuses.LoadAllPositions(int.Parse(arg));

            table.Columns.Add("Is Closed");
            table.Columns.Add("Closed Email");
            table.Columns.Add("Email Response");
            table.Columns.Add("Pause SLA");

            foreach (TicketStatus ticketStatus in ticketStatuses)
            {
                table.Rows.Add(new string[] { ticketStatus.TicketStatusID.ToString(), ticketStatus.Name, ticketStatus.Description, ticketStatus.IsClosed.ToString(), ticketStatus.IsClosedEmail.ToString(), ticketStatus.IsEmailResponse.ToString(), ticketStatus.PauseSLA.ToString() });
            }
            break;

        case SelectedType.TicketTypes:
            table.Columns.Add("Icon");
            table.Columns.Add("Visible on Portal");
            string icon = "<img src=\"../{0}\" />";
            if (organization.UseProductFamilies)
            {
                TicketTypesView ticketTypes = new TicketTypesView(UserSession.LoginUser);
                ticketTypes.LoadAllPositions(UserSession.LoginUser.OrganizationID);
                table.Columns.Add("Product Line");
                table.Columns.Add("Active");
                foreach (TicketTypesViewItem ticketType in ticketTypes)
                {
                    table.Rows.Add(new string[] { ticketType.TicketTypeID.ToString(), ticketType.Name, ticketType.Description, string.Format(icon, ticketType.IconUrl), ticketType.IsVisibleOnPortal.ToString(), ticketType.ProductFamilyName });
                }
            }
            else
            {
                TicketTypes ticketTypes = new TicketTypes(UserSession.LoginUser);
                ticketTypes.LoadAllPositions(UserSession.LoginUser.OrganizationID);
                table.Columns.Add("Active");
                foreach (TicketType ticketType in ticketTypes)
                {
                    table.Rows.Add(new string[] { ticketType.TicketTypeID.ToString(), ticketType.Name, ticketType.Description, string.Format(icon, ticketType.IconUrl), ticketType.IsVisibleOnPortal.ToString() });
                }
            }
            break;

        case SelectedType.ActivityTypes:
            ActivityTypes activityTypes = new ActivityTypes(UserSession.LoginUser);
            activityTypes.LoadAllPositions(UserSession.LoginUser.OrganizationID);
            foreach (ActivityType activityType in activityTypes)
            {
                table.Rows.Add(new string[] { activityType.ActivityTypeID.ToString(), activityType.Name, activityType.Description });
            }
            break;

        default:
            break;
        }

        return(BuildTable(table));
    }
    public static TypeObject GetTypeObject(SelectedType type, int id)
    {
        TypeObject result = new TypeObject();

        switch (type)
        {
        case SelectedType.ActionTypes:
            ActionType actionType = ActionTypes.GetActionType(UserSession.LoginUser, id);
            result.ID          = actionType.ActionTypeID;
            result.Name        = actionType.Name;
            result.Description = actionType.Description;
            result.IsTimed     = actionType.IsTimed;
            break;

        case SelectedType.PhoneTypes:
            PhoneType phoneType = PhoneTypes.GetPhoneType(UserSession.LoginUser, id);
            result.ID          = phoneType.PhoneTypeID;
            result.Name        = phoneType.Name;
            result.Description = phoneType.Description;
            break;

        case SelectedType.ProductVersionStatuses:
            ProductVersionStatus productVersionStatus = ProductVersionStatuses.GetProductVersionStatus(UserSession.LoginUser, id);
            result.ID             = productVersionStatus.ProductVersionStatusID;
            result.Name           = productVersionStatus.Name;
            result.Description    = productVersionStatus.Description;
            result.IsShipping     = productVersionStatus.IsShipping;
            result.IsDiscontinued = productVersionStatus.IsDiscontinued;
            break;

        case SelectedType.TicketSeverities:
            TicketSeverity ticketSeverity = TicketSeverities.GetTicketSeverity(UserSession.LoginUser, id);
            result.ID                = ticketSeverity.TicketSeverityID;
            result.Name              = ticketSeverity.Name;
            result.Description       = ticketSeverity.Description;
            result.IsVisibleOnPortal = ticketSeverity.VisibleOnPortal;
            break;

        case SelectedType.TicketStatuses:
            TicketStatus ticketStatus = TicketStatuses.GetTicketStatus(UserSession.LoginUser, id);
            result.ID              = ticketStatus.TicketStatusID;
            result.Name            = ticketStatus.Name;
            result.Description     = ticketStatus.Description;
            result.IsClosed        = ticketStatus.IsClosed;
            result.IsClosedEmail   = ticketStatus.IsClosedEmail;
            result.IsEmailResponse = ticketStatus.IsEmailResponse;
            result.PauseSla        = ticketStatus.PauseSLA;
            break;

        case SelectedType.TicketTypes:
            TicketType ticketType = TicketTypes.GetTicketType(UserSession.LoginUser, id);
            result.ID                = ticketType.TicketTypeID;
            result.Name              = ticketType.Name;
            result.Description       = ticketType.Description;
            result.IsVisibleOnPortal = ticketType.IsVisibleOnPortal;
            result.IconUrl           = ticketType.IconUrl;
            result.IsActive          = ticketType.IsActive;
            result.ExcludeFromCDI    = ticketType.ExcludeFromCDI;

            if (ticketType.ProductFamilyID == null)
            {
                result.ProductFamilyID = -1;
            }
            else
            {
                result.ProductFamilyID = (int)ticketType.ProductFamilyID;
            }

            break;

        case SelectedType.ActivityTypes:
            ActivityType activityType = ActivityTypes.GetActivityType(UserSession.LoginUser, id);
            result.ID          = activityType.ActivityTypeID;
            result.Name        = activityType.Name;
            result.Description = activityType.Description;
            break;

        default:
            break;
        }

        return(result);
    }
Example #27
0
 public GameActivityCommand(long id, ActivityTypes type)
 {
     Id   = id;
     Type = type;
 }
    public static string UpdateType(SelectedType type,
                                    string arg,
                                    int?id,
                                    string name,
                                    string description,
                                    bool isTimed,
                                    bool isClosed,
                                    bool isClosedEmail,
                                    bool isEmailResponse,
                                    bool pauseSla,
                                    bool isShipping,
                                    bool isDiscontinued,
                                    string productFamilyID,
                                    string iconUrl,
                                    bool isVisibleOnPortal,
                                    bool isActive,
                                    bool ExcludeFromCDI)
    {
        if (!UserSession.CurrentUser.IsSystemAdmin)
        {
            return("");
        }
        switch (type)
        {
        case SelectedType.ActionTypes:
            ActionType actionType = id == null ? (new ActionTypes(UserSession.LoginUser)).AddNewActionType() : ActionTypes.GetActionType(UserSession.LoginUser, (int)id);
            actionType.IsTimed     = isTimed;
            actionType.Name        = name;
            actionType.Description = description;
            if (id == null)
            {
                actionType.Position = actionType.Collection.GetMaxPosition(UserSession.LoginUser.OrganizationID) + 1;
            }
            if (id == null)
            {
                actionType.OrganizationID = UserSession.LoginUser.OrganizationID;
            }
            actionType.Collection.Save();
            actionType.Collection.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.PhoneTypes:
            PhoneType phoneType = id == null ? (new PhoneTypes(UserSession.LoginUser)).AddNewPhoneType() : PhoneTypes.GetPhoneType(UserSession.LoginUser, (int)id);
            phoneType.Name        = name;
            phoneType.Description = description;
            if (id == null)
            {
                phoneType.Position = phoneType.Collection.GetMaxPosition(UserSession.LoginUser.OrganizationID) + 1;
            }
            if (id == null)
            {
                phoneType.OrganizationID = UserSession.LoginUser.OrganizationID;
            }
            phoneType.Collection.Save();
            phoneType.Collection.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.ProductVersionStatuses:
            ProductVersionStatus productVersionStatus = id == null ? (new ProductVersionStatuses(UserSession.LoginUser)).AddNewProductVersionStatus() : ProductVersionStatuses.GetProductVersionStatus(UserSession.LoginUser, (int)id);
            productVersionStatus.IsDiscontinued = isDiscontinued;
            productVersionStatus.IsShipping     = isShipping;
            productVersionStatus.Name           = name;
            productVersionStatus.Description    = description;
            if (id == null)
            {
                productVersionStatus.Position = productVersionStatus.Collection.GetMaxPosition(UserSession.LoginUser.OrganizationID) + 1;
            }
            if (id == null)
            {
                productVersionStatus.OrganizationID = UserSession.LoginUser.OrganizationID;
            }
            productVersionStatus.Collection.Save();
            productVersionStatus.Collection.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.TicketSeverities:
            TicketSeverity ticketSeverity = id == null ? (new TicketSeverities(UserSession.LoginUser)).AddNewTicketSeverity() : TicketSeverities.GetTicketSeverity(UserSession.LoginUser, (int)id);
            ticketSeverity.Name        = name;
            ticketSeverity.Description = description;
            if (id == null)
            {
                ticketSeverity.Position = ticketSeverity.Collection.GetMaxPosition(UserSession.LoginUser.OrganizationID) + 1;
            }
            if (id == null)
            {
                ticketSeverity.OrganizationID = UserSession.LoginUser.OrganizationID;
            }
            ticketSeverity.VisibleOnPortal = isVisibleOnPortal;
            ticketSeverity.Collection.Save();
            ticketSeverity.Collection.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.TicketStatuses:
            if (isEmailResponse == true)
            {
                TicketStatuses statuses = new TicketStatuses(UserSession.LoginUser);
                statuses.LoadByTicketTypeID(int.Parse(arg));
                foreach (TicketStatus status in statuses)
                {
                    status.IsEmailResponse = false;
                }
                statuses.Save();
            }

            TicketStatus ticketStatus = id == null ? (new TicketStatuses(UserSession.LoginUser)).AddNewTicketStatus() : TicketStatuses.GetTicketStatus(UserSession.LoginUser, (int)id);
            ticketStatus.TicketTypeID    = int.Parse(arg);
            ticketStatus.IsClosed        = isClosed;
            ticketStatus.IsClosedEmail   = isClosedEmail;
            ticketStatus.IsEmailResponse = isEmailResponse;
            ticketStatus.PauseSLA        = pauseSla;
            ticketStatus.Name            = name;
            ticketStatus.Description     = description;
            if (id == null)
            {
                ticketStatus.Position = ticketStatus.Collection.GetMaxPosition(UserSession.LoginUser.OrganizationID) + 1;
            }
            if (id == null)
            {
                ticketStatus.OrganizationID = UserSession.LoginUser.OrganizationID;
            }
            ticketStatus.Collection.Save();
            ticketStatus.Collection.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        case SelectedType.TicketTypes:
            TicketType ticketType = id == null ? (new TicketTypes(UserSession.LoginUser)).AddNewTicketType() : TicketTypes.GetTicketType(UserSession.LoginUser, (int)id);
            ticketType.Name              = name;
            ticketType.Description       = description;
            ticketType.IconUrl           = iconUrl;
            ticketType.IsVisibleOnPortal = isVisibleOnPortal;
            ticketType.IsActive          = isActive;
            ticketType.ExcludeFromCDI    = ExcludeFromCDI;
            if (id == null)
            {
                ticketType.Position = ticketType.Collection.GetMaxPosition(UserSession.LoginUser.OrganizationID) + 1;
            }
            if (id == null)
            {
                ticketType.OrganizationID = UserSession.LoginUser.OrganizationID;
            }
            if (productFamilyID == "-1")
            {
                ticketType.ProductFamilyID = null;
            }
            else
            {
                ticketType.ProductFamilyID = Convert.ToInt32(productFamilyID);
            }

            ticketType.Collection.Save();
            ticketType.Collection.ValidatePositions(UserSession.LoginUser.OrganizationID);
            if (id == null)
            {
                try
                {
                    System.Data.SqlClient.SqlCommand command = new System.Data.SqlClient.SqlCommand();
                    command.CommandText = "UPDATE Users SET MenuItems = MenuItems + ',mniTicketType_" + ticketType.TicketTypeID.ToString() + "' WHERE UserID IN (SELECT UserID WHERE OrganizationID = @OrganizationID)";
                    command.Parameters.AddWithValue("OrganizationID", UserSession.LoginUser.OrganizationID);
                    SqlExecutor.ExecuteNonQuery(UserSession.LoginUser, command);
                }
                catch (Exception ex)
                {
                    ExceptionLogs.LogException(UserSession.LoginUser, ex, "Ticket Type Creation - menu item");
                }

                TicketStatuses ticketStatuses = new TicketStatuses(UserSession.LoginUser);
                ticketStatus                = ticketStatuses.AddNewTicketStatus();
                ticketStatus.Name           = "New";
                ticketStatus.Description    = "New";
                ticketStatus.Position       = 0;
                ticketStatus.OrganizationID = UserSession.LoginUser.OrganizationID;
                ticketStatus.TicketTypeID   = ticketType.TicketTypeID;
                ticketStatus.IsClosed       = false;
                ticketStatus.IsClosedEmail  = false;

                ticketStatus                = ticketStatuses.AddNewTicketStatus();
                ticketStatus.Name           = "Closed";
                ticketStatus.Description    = "Closed";
                ticketStatus.Position       = 30;
                ticketStatus.OrganizationID = UserSession.LoginUser.OrganizationID;
                ticketStatus.TicketTypeID   = ticketType.TicketTypeID;
                ticketStatus.IsClosed       = true;
                ticketStatus.IsClosedEmail  = false;
                ticketStatus.Collection.Save();
                ticketStatus.Collection.ValidatePositions(UserSession.LoginUser.OrganizationID);


/*          TicketNextStatuses ticketNextStatuses = new TicketNextStatuses(UserSession.LoginUser);
 *        ticketNextStatuses.AddNextStatus(ticketStatuses[0], ticketStatuses[1], 0);
 *        ticketNextStatuses.AddNextStatus(ticketStatuses[1], ticketStatuses[0], 1);
 *        ticketNextStatuses.Save();*/
            }

            break;

        case SelectedType.ActivityTypes:
            ActivityType activityType = id == null ? (new ActivityTypes(UserSession.LoginUser)).AddNewActivityType() : ActivityTypes.GetActivityType(UserSession.LoginUser, (int)id);
            activityType.Name        = name;
            activityType.Description = description;
            if (id == null)
            {
                activityType.Position = activityType.Collection.GetMaxPosition(UserSession.LoginUser.OrganizationID) + 1;
            }
            if (id == null)
            {
                activityType.OrganizationID = UserSession.LoginUser.OrganizationID;
            }
            activityType.Collection.Save();
            activityType.Collection.ValidatePositions(UserSession.LoginUser.OrganizationID);
            break;

        default:
            break;
        }


        return(GetTypesHtml(type, arg));
    }
 private void CancelNewActivity()
 {
     NewActivityType  = ActivityTypes.FirstOrDefault();
     NewActivityName  = String.Empty;
     IsAddingActivity = false;
 }
Example #30
0
        /// <summary>
        /// Returns true if SummaryClub instances are equal
        /// </summary>
        /// <param name="other">Instance of SummaryClub to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(SummaryClub other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     ProfileMedium == other.ProfileMedium ||
                     ProfileMedium != null &&
                     ProfileMedium.Equals(other.ProfileMedium)
                     ) &&
                 (
                     CoverPhoto == other.CoverPhoto ||
                     CoverPhoto != null &&
                     CoverPhoto.Equals(other.CoverPhoto)
                 ) &&
                 (
                     CoverPhotoSmall == other.CoverPhotoSmall ||
                     CoverPhotoSmall != null &&
                     CoverPhotoSmall.Equals(other.CoverPhotoSmall)
                 ) &&
                 (
                     SportType == other.SportType ||
                     SportType != null &&
                     SportType.Equals(other.SportType)
                 ) &&
                 (
                     ActivityTypes == other.ActivityTypes ||
                     ActivityTypes != null &&
                     ActivityTypes.SequenceEqual(other.ActivityTypes)
                 ) &&
                 (
                     City == other.City ||
                     City != null &&
                     City.Equals(other.City)
                 ) &&
                 (
                     State == other.State ||
                     State != null &&
                     State.Equals(other.State)
                 ) &&
                 (
                     Country == other.Country ||
                     Country != null &&
                     Country.Equals(other.Country)
                 ) &&
                 (
                     _Private == other._Private ||
                     _Private != null &&
                     _Private.Equals(other._Private)
                 ) &&
                 (
                     MemberCount == other.MemberCount ||
                     MemberCount != null &&
                     MemberCount.Equals(other.MemberCount)
                 ) &&
                 (
                     Featured == other.Featured ||
                     Featured != null &&
                     Featured.Equals(other.Featured)
                 ) &&
                 (
                     Verified == other.Verified ||
                     Verified != null &&
                     Verified.Equals(other.Verified)
                 ) &&
                 (
                     Url == other.Url ||
                     Url != null &&
                     Url.Equals(other.Url)
                 ));
        }
Example #31
0
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (ProfileMedium != null)
         {
             hashCode = hashCode * 59 + ProfileMedium.GetHashCode();
         }
         if (CoverPhoto != null)
         {
             hashCode = hashCode * 59 + CoverPhoto.GetHashCode();
         }
         if (CoverPhotoSmall != null)
         {
             hashCode = hashCode * 59 + CoverPhotoSmall.GetHashCode();
         }
         if (SportType != null)
         {
             hashCode = hashCode * 59 + SportType.GetHashCode();
         }
         if (ActivityTypes != null)
         {
             hashCode = hashCode * 59 + ActivityTypes.GetHashCode();
         }
         if (City != null)
         {
             hashCode = hashCode * 59 + City.GetHashCode();
         }
         if (State != null)
         {
             hashCode = hashCode * 59 + State.GetHashCode();
         }
         if (Country != null)
         {
             hashCode = hashCode * 59 + Country.GetHashCode();
         }
         if (_Private != null)
         {
             hashCode = hashCode * 59 + _Private.GetHashCode();
         }
         if (MemberCount != null)
         {
             hashCode = hashCode * 59 + MemberCount.GetHashCode();
         }
         if (Featured != null)
         {
             hashCode = hashCode * 59 + Featured.GetHashCode();
         }
         if (Verified != null)
         {
             hashCode = hashCode * 59 + Verified.GetHashCode();
         }
         if (Url != null)
         {
             hashCode = hashCode * 59 + Url.GetHashCode();
         }
         return(hashCode);
     }
 }
        /// <summary>
        /// Creates a new audit log
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="activity"></param>
        /// <param name="newItem"></param>
        /// <param name="oldItem"></param>
        public bool Create <T>(ActivityTypes activity, T newItem, T oldItem = null, int userId = 0) where T : class
        {
            try
            {
                dynamic oldObj = new ExpandoObject(),
                        newObj = new ExpandoObject();

                var oldDic = oldObj as IDictionary <string, object>;
                var newDic = newObj as IDictionary <string, object>;

                if (oldItem != null)
                {
                    var oldprops = oldItem.GetType().GetProperties();

                    foreach (var item in oldprops)
                    {
                        if (
                            (item.PropertyType != null) &&
                            (item.PropertyType == typeof(string) ||
                             item.PropertyType == typeof(int) ||
                             item.PropertyType == typeof(int?) ||
                             item.PropertyType == typeof(decimal) ||
                             item.PropertyType == typeof(decimal? ) ||
                             item.PropertyType == typeof(DateTime) ||
                             item.PropertyType == typeof(DateTime? ) ||
                             item.PropertyType == typeof(double) ||
                             item.PropertyType == typeof(double?) ||
                             item.PropertyType == typeof(TimeSpan) ||
                             item.PropertyType == typeof(TimeSpan? ) ||
                             item.PropertyType == typeof(bool) ||
                             item.PropertyType == typeof(bool?) ||
                             item.PropertyType == typeof(byte) ||
                             item.PropertyType == typeof(byte?))
                            )
                        {
                            oldDic[item.Name] = item.GetValue(oldItem);
                        }
                    }
                }

                var props = newItem.GetType().GetProperties();

                foreach (var item in props)
                {
                    if (
                        (item.PropertyType != null) &&
                        (item.PropertyType == typeof(string) ||
                         item.PropertyType == typeof(int) ||
                         item.PropertyType == typeof(int?) ||
                         item.PropertyType == typeof(decimal) ||
                         item.PropertyType == typeof(decimal? ) ||
                         item.PropertyType == typeof(DateTime) ||
                         item.PropertyType == typeof(DateTime? ) ||
                         item.PropertyType == typeof(double) ||
                         item.PropertyType == typeof(double?) ||
                         item.PropertyType == typeof(TimeSpan) ||
                         item.PropertyType == typeof(TimeSpan? ) ||
                         item.PropertyType == typeof(bool) ||
                         item.PropertyType == typeof(bool?) ||
                         item.PropertyType == typeof(byte) ||
                         item.PropertyType == typeof(byte?))
                        )
                    {
                        newDic[item.Name] = item.GetValue(newItem);
                    }
                }

                string actionTable = newItem.GetType().BaseType.Name;

                if (actionTable.ToLower() == "object")
                {
                    actionTable = newItem.GetType().Name;
                }

                string before = (oldItem != null) ? Newtonsoft.Json.JsonConvert.SerializeObject(oldObj) : string.Empty;
                string after  = (newObj != null) ? Newtonsoft.Json.JsonConvert.SerializeObject(newObj) : string.Empty;

                //if ( before == after ) return false;

                HttpBrowserCapabilities browser = HttpContext.Current.Request.Browser;

                string b = string.Format("Type={1} {0} Name={2} {0} Version={3} {0} Platform={4} {0} Supports JavaScript={5}", Environment.NewLine,
                                         browser.Type, browser.Browser, browser.Version, browser.Platform, browser.EcmaScriptVersion.ToString());

                if (userId == 0)
                {
                    userId = (CurrentUser?.Id > 0) ? CurrentUser.Id : 0;
                }

                AuditLog log = new AuditLog()
                {
                    Browser       = b,
                    UserId        = userId,
                    AfterImage    = after,
                    BeforeImage   = before,
                    Type          = ( int )activity,
                    CreatedOn     = DateTime.Now,
                    ModifiedOn    = DateTime.Now,
                    ActionTable   = actionTable,
                    Comments      = string.Format("Created/Updated a {0}", actionTable),
                    ModifiedBy    = ((!string.IsNullOrEmpty(CurrentUser?.Email)) ? CurrentUser.Email : "System"),
                    IsAjaxRequest = (HttpContext.Current.Request.Headers["X-Requested-With"] == "XMLHttpRequest"),
                    Action        = (HttpContext.Current.Request.RequestContext.RouteData.Values["action"] as string) ?? string.Empty,
                    Controller    = (HttpContext.Current.Request.RequestContext.RouteData.Values["controller"] as string) ?? string.Empty,
                    ObjectId      = ( int )newItem.GetType().GetProperties().FirstOrDefault(x => x.Name == "Id").GetValue(newItem),
                    Parameters    = string.Empty //new JavaScriptSerializer().Serialize( HttpContext.Current.Request.RequestContext.RouteData.Values )
                };

                _context.AuditLogs.Add(log);
                _context.SaveChanges();
            }
            catch (Exception ex)
            {
            }

            return(true);
        }