Beispiel #1
0
        private static void NimSignalingChannelsSyncCallback(IntPtr info_list, int size, IntPtr user_data)
        {
            List <NIMSignalingChannelDetailedinfo> channels = new List <NIMSignalingChannelDetailedinfo>();

            if (info_list != IntPtr.Zero)
            {
                for (int i = 0; i < size; i++)
                {
                    NIMSignalingChannelDetailedinfo channel_detailed_info = new NIMSignalingChannelDetailedinfo();

                    IntPtr detailed_ptr = NimUtility.IntPtrExtensions.Increment(info_list, i * Marshal.SizeOf(typeof(NIMSignalingChannelDetailedinfo_C)));
                    NIMSignalingChannelDetailedinfo_C detailed_info = (NIMSignalingChannelDetailedinfo_C)Marshal.PtrToStructure(detailed_ptr, typeof(NIMSignalingChannelDetailedinfo_C));

                    for (int j = 0; j < detailed_info.member_size_; j++)
                    {
                        IntPtr src_data = NimUtility.IntPtrExtensions.Increment(detailed_info.members_, j * Marshal.SizeOf(typeof(NIMSignalingMemberInfo_C)));
                        NIMSignalingMemberInfo_C member_info_c = (NIMSignalingMemberInfo_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingMemberInfo_C));
                        NIMSignalingMemberInfo   member_info   = SignalHelper.NIMSignalingMemberFromC(member_info_c);
                        channel_detailed_info.members_.Add(member_info);
                    }

                    channel_detailed_info.channel_info_ = SignalHelper.NIMSignalingChannelInfoFromC(detailed_info.channel_info_);
                    channels.Add(channel_detailed_info);
                }
            }
            NimUtility.DelegateConverter.Invoke <NimSignalingChannelsSyncHandler>(user_data, channels);
        }
Beispiel #2
0
        protected override DiscreteSignal Render(NoteSegment segment)
        {
            DiscreteSignal mainSignal = null;

            if (segment is PercussionNoteSegment percussionNoteSegment)
            {
                mainSignal = GetPercussionSignal(percussionNoteSegment.PercussionType, percussionNoteSegment.DurationSamples);
            }
            else if (segment is MelodicNoteSegment melodicNoteSegment)
            {
                // Combine a Sine wave and a Square wave
                mainSignal = SignalHelper.GetSine(melodicNoteSegment.Frequency, melodicNoteSegment.DurationSamples);
                mainSignal.CombineAdd(SignalHelper.GetSquare(melodicNoteSegment.Frequency, melodicNoteSegment.DurationSamples));
            }

            float velocityMultiplier = segment.Velocity / 127f; // Velocity ranges from 0 - 127

            // A simple way of doing an equalizer
            float balanceMultiplier = BalanceProvider.GetMultiplier(segment);

            // Scale the signals based on their velocity and balance multipliers
            mainSignal.Amplify(velocityMultiplier * balanceMultiplier);
            mainSignal.ApplyAdsr(AdsrEnvelopeProvider.CreateEnvelope(segment));

            return(mainSignal);
        }
Beispiel #3
0
        private static void NimSignalingOptAcceptCallback(int code, IntPtr opt_res_param, IntPtr user_data)
        {
            NIMSignalingAcceptResParam accept_res_param = new NIMSignalingAcceptResParam();

            accept_res_param.info_ = new NIMSignalingChannelDetailedinfo();
            NIMSignalingJoinResParam_C res_param_c = (NIMSignalingJoinResParam_C)Marshal.PtrToStructure(opt_res_param, typeof(NIMSignalingJoinResParam_C));

            if (res_param_c != null)
            {
                accept_res_param.info_.channel_info_ = SignalHelper.NIMSignalingChannelInfoFromC(res_param_c.info_.channel_info_);
                for (int i = 0; i < res_param_c.info_.member_size_; i++)
                {
                    IntPtr src_data = NimUtility.IntPtrExtensions.Increment(res_param_c.info_.members_, i * Marshal.SizeOf(typeof(NIMSignalingMemberInfo_C)));
                    NIMSignalingMemberInfo_C member_info_c = (NIMSignalingMemberInfo_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingMemberInfo_C));
                    NIMSignalingMemberInfo   member_info   = SignalHelper.NIMSignalingMemberFromC(member_info_c);
                    accept_res_param.info_.members_.Add(member_info);
                }
            }

            NIMSignalingRejectOrAcceptResCode res_code = NIMSignalingRejectOrAcceptResCode.kUnknown;

            try
            {
                res_code = (NIMSignalingRejectOrAcceptResCode)Enum.Parse(typeof(NIMSignalingRejectOrAcceptResCode), code.ToString());
            }
            catch
            {
                res_code = NIMSignalingRejectOrAcceptResCode.kUnknown;
            }
            NimUtility.DelegateConverter.Invoke <NimSignalingOptAcceptHandler>(user_data, res_code, accept_res_param);
        }
        private static void NimSignalingOptCreateCallback(int code, IntPtr opt_res_param, IntPtr user_data)
        {
            NIMSignalingCreateResParam res_param = new NIMSignalingCreateResParam();

            if (opt_res_param != IntPtr.Zero)
            {
                NIMSignalingCreateResParam_C res_param_c = (NIMSignalingCreateResParam_C)Marshal.PtrToStructure(opt_res_param, typeof(NIMSignalingCreateResParam_C));
                res_param.channel_info_ = SignalHelper.NIMSignalingChannelInfoFromC(res_param_c.channel_info_);
            }
            NimUtility.DelegateConverter.Invoke <NimSignalingOptCreateHandler>(user_data, code, res_param);
        }
Beispiel #5
0
        /// <inheritdoc />
        public DiscreteSignal CreateEnvelope(NoteSegment segment)
        {
            var adsrParameters = MelodicAdsrParameters;

            if (segment is PercussionNoteSegment percussionNoteSegment)
            {
                adsrParameters = GetPercussionAdsrParameters(percussionNoteSegment.PercussionType);
            }

            return(SignalHelper.GetAdsrEnvelope(adsrParameters, segment.DurationSamples));
        }
Beispiel #6
0
        void SetNotificationBaseInfo(IntPtr ptr)
        {
            var notification = NimUtility.Utilities.IntPtrToStructure <CNotification>(ptr);
            var notifyData   = NimUtility.Utilities.IntPtrToStructure <CNotificationData>(notification.Data);

            custom_info_     = NimUtility.Utilities.MarshalUtf8String(notifyData.custom_info_);
            from_account_id_ = NimUtility.Utilities.MarshalUtf8String(notifyData.from_account_id_);
            msg_id_          = notifyData.msg_id_;
            var cChannel = NimUtility.Utilities.IntPtrToStructure <NIMSignalingChannelInfo_C>(notifyData.channel_info_);

            channel_info_ = SignalHelper.NIMSignalingChannelInfoFromC(cChannel);
        }
Beispiel #7
0
        private static void NimSignalingOptJoinCallback(int code, IntPtr opt_res_param, IntPtr user_data)
        {
            NIMSignalingJoinResParam res_param = new NIMSignalingJoinResParam();

            NIMSignalingJoinResParam_C res_param_c = (NIMSignalingJoinResParam_C)Marshal.PtrToStructure(opt_res_param, typeof(NIMSignalingJoinResParam_C));

            res_param.info_.channel_info_ = SignalHelper.NIMSignalingChannelInfoFromC(res_param_c.info_.channel_info_);
            for (int i = 0; i < res_param_c.info_.member_size_; i++)
            {
                IntPtr src_data = NimUtility.IntPtrExtensions.Increment(res_param_c.info_.members_, i * Marshal.SizeOf(typeof(NIMSignalingMemberInfo_C)));
                NIMSignalingMemberInfo_C member_info_c = (NIMSignalingMemberInfo_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingMemberInfo_C));
                NIMSignalingMemberInfo   member_info   = SignalHelper.NIMSignalingMemberFromC(member_info_c);
                res_param.info_.members_.Add(member_info);
            }

            NimUtility.DelegateConverter.Invoke <NimSignalingOptJoinHandler>(user_data, code, res_param);
        }
 public void UTSignalHelperAbsoluteToRelativePosition4()
 {
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(2, 4, 6),
         4
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(4, -4, 6),
         2
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(-10, 4, 6),
         4
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(18, 6, 6),
         0
         );
 }
 public void UTSignalHelperAbsoluteToRelativePosition1()
 {
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(2),
         2
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(4, 0),
         4
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(8, 0),
         8
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(12, 0, 0),
         12
         );
 }
 public void UTSignalHelperAbsoluteToRelativePosition2()
 {
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(2, 2),
         0
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(4, 3),
         1
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(8, 10),
         -2
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(12, 6, 0),
         6
         );
 }
 public void UTSignalHelperAbsoluteToRelativePosition3()
 {
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(2, loopLength: 6),
         2
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(4, loopLength: 3),
         1
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(-10, loopLength: 6),
         2
         );
     Assert.AreEqual(
         SignalHelper.AbsoluteToRelativePosition(12, 0, 6),
         0
         );
 }
        private static void NimSignalingMembersSyncCallback(IntPtr detailed_info, IntPtr user_data)
        {
            NIMSignalingChannelDetailedinfo channel_detailed_info = new NIMSignalingChannelDetailedinfo();


            if (detailed_info != IntPtr.Zero)
            {
                NIMSignalingChannelDetailedinfo_C res_param = (NIMSignalingChannelDetailedinfo_C)Marshal.PtrToStructure(detailed_info, typeof(NIMSignalingChannelDetailedinfo_C));
                channel_detailed_info.channel_info_ = SignalHelper.NIMSignalingChannelInfoFromC(res_param.channel_info_);
                for (int i = 0; i < res_param.member_size_; i++)
                {
                    IntPtr src_data = NimUtility.IntPtrExtensions.Increment(res_param.members_, i * Marshal.SizeOf(typeof(NIMSignalingMemberInfo)));
                    NIMSignalingMemberInfo member_info = (NIMSignalingMemberInfo)Marshal.PtrToStructure(src_data, typeof(NIMSignalingMemberInfo));
                    channel_detailed_info.members_.Add(member_info);
                }
            }

            NimUtility.DelegateConverter.Invoke <NimSignalingMembersSyncHandler>(user_data, channel_detailed_info);
        }
Beispiel #13
0
        private static NIMSignalingNotityInfo NotityInfoFromIntPtr(IntPtr src_data)
        {
            NIMSignalingNotityInfo_C info_c = (NIMSignalingNotityInfo_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfo_C));
            NIMSignalingNotityInfo   info   = null;
            object notity_objtect           = null;

            switch (info_c.event_type_)
            {
            case NIMSignalingEventType.kNIMSignalingEventTypeClose:
            case NIMSignalingEventType.kNIMSignalingEventTypeLeave:
            case NIMSignalingEventType.kNIMSignalingEventTypeCtrl:
                notity_objtect = info_c;
                info           = SignalHelper.NIMSignalingNotityInfoFromC(info_c);
                break;

            case NIMSignalingEventType.kNIMSignalingEventTypeJoin:
                notity_objtect = (NIMSignalingNotityInfoJoin_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoJoin_C));
                info           = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoJoin_C)notity_objtect);
                break;

            case NIMSignalingEventType.kNIMSignalingEventTypeInvite:
                notity_objtect = (NIMSignalingNotityInfoInvite_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoInvite_C));
                info           = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoInvite_C)notity_objtect);
                break;

            case NIMSignalingEventType.kNIMSignalingEventTypeCancelInvite:
                notity_objtect = (NIMSignalingNotityInfoCancelInvite_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoCancelInvite_C));
                info           = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoCancelInvite_C)notity_objtect);
                break;

            case NIMSignalingEventType.kNIMSignalingEventTypeReject:
                notity_objtect = (NIMSignalingNotityInfoReject_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoReject_C));
                info           = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoReject_C)notity_objtect);
                break;

            case NIMSignalingEventType.kNIMSignalingEventTypeAccept:
                notity_objtect = (NIMSignalingNotityInfoAccept_C)Marshal.PtrToStructure(src_data, typeof(NIMSignalingNotityInfoAccept_C));
                info           = SignalHelper.NIMSignalingNotityInfoFromC((NIMSignalingNotityInfoAccept_C)notity_objtect);
                break;
            }
            return(info);
        }
Beispiel #14
0
        public void Run(IBackgroundTaskInstance taskInstance)
        {
            SignalFileLoggerProvider.ForceAddBGLog(LibUtils.GetBGStartMessage());
            SignalLogging.SetupLogging(false);
            Deferral               = taskInstance.GetDeferral();
            ToastNotifier          = ToastNotificationManager.CreateToastNotifier();
            taskInstance.Canceled += OnCanceled;
            bool locked = LibUtils.Lock(5000);

            Logger.LogTrace("Locking global finished, locked = {0}", locked);
            if (!locked)
            {
                Logger.LogWarning("App is running, background task shutting down");
                Deferral.Complete();
                return;
            }
            GlobalResetEvent = LibUtils.OpenResetEventUnset();
            Task.Run(() =>
            {
                GlobalResetEvent.WaitOne();
                Logger.LogInformation("Background task received app startup signal");
                ResetEvent.Set();
            });
            try
            {
                Handle = SignalHelper.CreateSignalLibHandle(true);
                Handle.SignalMessageEvent += Handle_SignalMessageEvent;
                Handle.BackgroundAcquire();
                ResetEvent.WaitOne();
            }
            catch (Exception e)
            {
                Logger.LogError("Background task failed: {0}\n{1}", e.Message, e.StackTrace);
            }
            finally
            {
                Logger.LogInformation("Background task shutting down");
                Handle.BackgroundRelease();
                LibUtils.Unlock();
                Deferral.Complete();
            }
        }
Beispiel #15
0
        /// <summary>
        /// 独立信令 创建频道
        /// 该接口用户创建频道,同一时刻频道名互斥,不能重复创建。但如果频道名缺省,服务器会自动分配频道id。
        /// 对于频道在创建后如果没人加入,有效期2小时,当有成员加入后会自动延续频道有效期。当主动关闭频道或者最后一个成员退出后2小时后频道销毁。
        /// </summary>
        /// <param name="param">创建频道的传入参数</param>
        /// <param name="cb">结果回调见NimSignalingDef.cs</param>
        public static void SignalingCreate(NIMSignalingCreateParam param, NimSignalingOptCreateHandler cb)
        {
            NIMSignalingCreateParam_C param_c = SignalHelper.GetNativeNIMSignalingCreateParam(param);
            int    nSizeOfParam = Marshal.SizeOf(param_c);
            IntPtr param_ptr    = Marshal.AllocHGlobal(nSizeOfParam);

            try
            {
                Marshal.StructureToPtr(param_c, param_ptr, false);
                var user_ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
                SignalingNativeMethods.nim_signaling_create(param_ptr, NimSignalingCreateCb, user_ptr);
            }
            catch (Exception ex)
            {
            }
            finally
            {
                Marshal.FreeHGlobal(param_ptr);
            }
        }
        public void SetData(IntPtr ptr)
        {
            if (ptr == IntPtr.Zero)
            {
                return;
            }
            ChannelDetail             channelDetail = (ChannelDetail)Marshal.PtrToStructure(ptr, typeof(ChannelDetail));
            NIMSignalingChannelInfo_C channel       = (NIMSignalingChannelInfo_C)Marshal.PtrToStructure(channelDetail.Channel, typeof(NIMSignalingChannelInfo_C));

            channel_info_ = SignalHelper.NIMSignalingChannelInfoFromC(channel);
            if (channelDetail.MembersCount > 0)
            {
                for (int i = 0; i < channelDetail.MembersCount; i++)
                {
                    var memberPtr = Marshal.ReadIntPtr(channelDetail.Members, i * Marshal.SizeOf(typeof(IntPtr)));
                    var member    = (NIMSignalingMemberInfo)Marshal.PtrToStructure(memberPtr, typeof(NIMSignalingMemberInfo));
                    members_.Add(member);
                }
            }
        }
Beispiel #17
0
        // todo Abundant Music WebAudioPlayer has synthesis settings. How did it do the percussion?
        private DiscreteSignal GetPercussionSignal(PercussionType percussionType, int sampleCount)
        {
            switch (percussionType)
            {
            // Bass drums
            case PercussionType.Bass:
                var bass  = SignalHelper.GetChirp(90, 120, sampleCount);
                var bass2 = SignalHelper.GetChirp(180, 240, sampleCount);
                var bass3 = SignalHelper.GetChirp(270, 360, sampleCount);

                // The chirp builder goes in the "up" direction, so we need to reverse it to go "down"
                bass  = new DiscreteSignal(Constants.SAMPLE_RATE, bass.Samples.Reverse());
                bass2 = new DiscreteSignal(Constants.SAMPLE_RATE, bass2.Samples.Reverse());
                bass3 = new DiscreteSignal(Constants.SAMPLE_RATE, bass3.Samples.Reverse());

                // Combine the two bass signals so that the bass has more "presence"
                bass = bass.Superimpose(bass2).Superimpose(bass3);

                return(bass);

            // Snare drums
            case PercussionType.Snare:
                var snare = SignalHelper.GetKarplusStrongDrum(0.5, 30, 1, 1, sampleCount);

                return(snare);

            // Crash drums
            case PercussionType.Crash:
                var crash = SignalHelper.GetKarplusStrongDrum(0.5, 11, 1, 1, sampleCount);

                return(crash);

            // Ride drums
            case PercussionType.Ride:
            // Defaulting to a ride drum probably isn't good, but it will sound in lots of situations.
            default:
                var ride = SignalHelper.GetKarplusStrongDrum(0.5, 60, 0.1, 1, sampleCount);

                return(ride);
            }
        }
Beispiel #18
0
        /// <summary>
        /// 独立信令 用户自定义控制指令接口
        /// 该接口用于在频道中透传一些自定义指令,协助频道管理
        /// </summary>
        /// <param name="param">控制通知的传入参数,接收方to_填空为群发,只支持在线通知</param>
        /// <param name="cb">结果回调见NimSignalingDef.cs</param>
        public static void Control(NIMSignalingControlParam param, NimSignalingOptControlHandler cb)
        {
            NIMSignalingControlParam_C param_c = SignalHelper.GetNativeNIMSignalingControlParam(param);
            int    nSizeOfParam = Marshal.SizeOf(param_c);
            IntPtr param_ptr    = Marshal.AllocHGlobal(nSizeOfParam);

            try
            {
                Marshal.StructureToPtr(param_c, param_ptr, false);
                var user_ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
                SignalingNativeMethods.nim_signaling_control(param_ptr, NimSignalingControlCb, user_ptr);
            }
            catch (Exception)
            {
                cb?.Invoke(NIMSignalingControlResCode.kAbnormal);
            }
            finally
            {
                Marshal.FreeHGlobal(param_ptr);
            }
        }
        /// <summary>
        /// 独立信令 接受邀请接口
        /// 不开自动加入开关:该接口只接受邀请并告知邀请者,并同步通知自己的其他在线设备,但不会主动加入频道,需要单独调用加入接口
        /// 打开自动加入开关:该接口为组合接口,等同于先调用接受邀请,成功后再加入频道。
        /// 该接口在打开自动加入开关后是组合接口,对应的通知会有2个,接收邀请通知和加入通知
        /// </summary>
        /// <param name="param">接受邀请的传入参数</param>
        /// <param name="cb">结果回调见NimSignalingDef.cs,其中opt_res_param在打开自动加入开关,并成功后有效</param>
        public static void Accept(NIMSignalingAcceptParam param, NimSignalingOptAcceptHandler cb)
        {
            NIMSignalingAcceptParam_C param_c = SignalHelper.GetNativeNIMSignalingAcceptParam(param);
            int    nSizeOfParam = Marshal.SizeOf(param_c);
            IntPtr param_ptr    = Marshal.AllocHGlobal(nSizeOfParam);

            try
            {
                Marshal.StructureToPtr(param_c, param_ptr, false);
                var user_ptr = NimUtility.DelegateConverter.ConvertToIntPtr(cb);
                SignalingNativeMethods.nim_signaling_accept(param_ptr, NimSignalingAcceptCb, user_ptr);
            }
            catch (Exception)
            {
                if (cb != null)
                {
                    cb.Invoke(NIMSignalingRejectOrAcceptResCode.kAbnormal, null);
                }
            }
            finally
            {
                Marshal.FreeHGlobal(param_ptr);
            }
        }
        private static void NimSignalingOptJoinCallback(int code, IntPtr opt_res_param, IntPtr user_data)
        {
            NIMSignalingJoinResParam res_param = new NIMSignalingJoinResParam();

            if (code == (int)NIM.ResponseCode.kNIMResSuccess)
            {
                res_param = new NIMSignalingJoinResParam();
                JoinResult                result        = (JoinResult)Marshal.PtrToStructure(opt_res_param, typeof(JoinResult));
                ChannelDetail             channelDetail = (ChannelDetail)Marshal.PtrToStructure(result.DetailInfo, typeof(ChannelDetail));
                NIMSignalingChannelInfo_C channel       = (NIMSignalingChannelInfo_C)Marshal.PtrToStructure(channelDetail.Channel, typeof(NIMSignalingChannelInfo_C));
                if (channelDetail.MembersCount > 0)
                {
                    NIMSignalingMemberInfo[] members = new NIMSignalingMemberInfo[channelDetail.MembersCount];
                    for (int i = 0; i < channelDetail.MembersCount; i++)
                    {
                        var ptr = Marshal.ReadIntPtr(channelDetail.Members, i * Marshal.SizeOf(typeof(IntPtr)));
                        members[i] = (NIMSignalingMemberInfo)Marshal.PtrToStructure(ptr, typeof(NIMSignalingMemberInfo));
                    }
                    res_param.info_.members_.AddRange(members);
                }
                res_param.info_.channel_info_ = SignalHelper.NIMSignalingChannelInfoFromC(channel);
            }
            NimUtility.DelegateConverter.Invoke <NimSignalingOptJoinHandler>(user_data, code, res_param);
        }
 public override void OnComplete()
 {
     Complete(SignalHelper.Complete <T>());
 }
 public override void OnNext(T t)
 {
     produced++;
     actual.OnNext(SignalHelper.Next(t));
 }
        public ActionResult getAllRoom(string sortOrder, string selectedBlock = "", string selectedType = "", string selectedRoomNum = "")
        {
            var roomsStatusChangedCount = 0;
            List <Helper.MySQlRoom> res = MysqlFetchingRoomData.getDataFromMySql();

            foreach (var item in res)
            {
                var room = _roomService.GetAll().Where(x => x.RoomNum == item.RoomNum).FirstOrDefault();
                if (room != null)
                {
                    room.IsNeedfix   = item.MantStatus == "M" ? true : false;
                    room.isneedclean = item.CleanStatus == "D" ? true : false;
                    if (room.IsNeedfix && !room.Isrequistedfix)
                    {
                        roomsStatusChangedCount++;
                    }
                    if (room.isneedclean && !room.Isrequisted)
                    {
                        roomsStatusChangedCount++;
                    }
                    _roomService.Edit(room);
                }
            }



            List <RoomDto> list1 = _roomService.GetAll();
            List <RoomDto> list2 = new List <RoomDto>();

            foreach (var item in list1)
            {
                item.TypeName  = _roomTypeService.getbyidGetById(item.RoomType_id).Name.ToString();
                item.blockName = _hotelBlockService.GetById(item.HotelBlock_id).BlockName.ToString();
                list2.Add(item);
            }

            var RF = new RoomFilter();

            RF.HotelBlocks = _hotelBlockService.GetAll().Select(x => new SelectListItem()
            {
                Value = x.Id.ToString(),
                Text  = x.BlockName
            });
            RF.Types = _roomTypeService.GetRoomTypes().Select(x => new SelectListItem()
            {
                Value = x.Id.ToString(),
                Text  = x.Name
            });

            var data = list2;

            roomsStatusChangedCount = data.Where(x => (x.isneedclean && !x.Isrequisted) || x.IsNeedfix && !x.Isrequistedfix).Count();
            System.Web.HttpContext.Current.Session["roomsStatusChangedCount"] = roomsStatusChangedCount;
            SignalHelper.SendRoomsStatusChangedCount(roomsStatusChangedCount);
            var selectedTypeValue = 0;
            var isInt             = int.TryParse(selectedBlock, out selectedTypeValue);

            if (!string.IsNullOrEmpty(selectedBlock) && isInt)
            {
                data = data.Where(f => f.HotelBlock_id == (int)int.Parse(selectedBlock)).ToList();
            }
            if (!string.IsNullOrEmpty(selectedRoomNum))
            {
                data = data.Where(f => f.RoomNum == selectedRoomNum).ToList();
            }
            selectedTypeValue = 0;
            isInt             = int.TryParse(selectedType, out selectedTypeValue);
            if (!string.IsNullOrEmpty(selectedType) && isInt)
            {
                data = data.Where(f => f.RoomType_id == (int)int.Parse(selectedType)).ToList();
            }
            ViewBag.RoomNumberSortParm      = !String.IsNullOrEmpty(sortOrder) ? "number_desc" : "number";
            ViewBag.RoomDirSortParm         = !String.IsNullOrEmpty(sortOrder) ? "dir_desc" : "dir";
            ViewBag.RoomBlockSortParm       = !String.IsNullOrEmpty(sortOrder) ? "block_desc" : "block";
            ViewBag.RoomTypeSortParm        = !String.IsNullOrEmpty(sortOrder) ? "type_desc" : "type";
            ViewBag.RoomIsBusySortParm      = !String.IsNullOrEmpty(sortOrder) ? "busy_desc" : "busy";
            ViewBag.RoomIsNeedFixSortParm   = !String.IsNullOrEmpty(sortOrder) ? "fix_desc" : "fix";
            ViewBag.RoomIsNeedCleanSortParm = !String.IsNullOrEmpty(sortOrder) ? "clean_desc" : "clean";
            ViewBag.RoomIsInServiceSortParm = !String.IsNullOrEmpty(sortOrder) ? "service_desc" : "service";
            switch (sortOrder)
            {
            case "number_desc":
                data = data.OrderByDescending(s => s.RoomNum).ToList();
                break;

            case "dir_desc":
                data = data.OrderByDescending(s => s.RoomDirection).ToList();
                break;

            case "block_desc":
                data = data.OrderByDescending(s => s.blockName).ToList();
                break;

            case "type_desc":
                data = data.OrderByDescending(s => s.TypeName).ToList();
                break;

            case "busy_desc":
                data = data.OrderByDescending(s => s.Isbusy).ToList();
                break;

            case "fix_desc":
                data = data.OrderByDescending(s => s.IsNeedfix).ToList();
                break;

            case "clean_desc":
                data = data.OrderByDescending(s => s.isneedclean).ToList();
                break;

            case "service_desc":
                data = data.OrderByDescending(s => s.IsInService).ToList();
                break;

            case "number":
                data = data.OrderBy(s => s.RoomNum).ToList();
                break;

            case "dir":
                data = data.OrderBy(s => s.RoomDirection).ToList();
                break;

            case "block":
                data = data.OrderBy(s => s.blockName).ToList();
                break;

            case "type":
                data = data.OrderBy(s => s.TypeName).ToList();
                break;

            case "busy":
                data = data.OrderBy(s => s.Isbusy).ToList();
                break;

            case "fix":
                data = data.OrderBy(s => s.IsNeedfix).ToList();
                break;

            case "clean":
                data = data.OrderBy(s => s.isneedclean).ToList();
                break;

            case "service":
                data = data.OrderBy(s => s.IsInService).ToList();
                break;
            }
            RF.Data = data.ToList();

            return(View(RF));
        }
Beispiel #24
0
        //al hacer miVariable = Wave.Offset ejecutamos get
        //al hacer Wave.Offset = 5 ejecutamos set
        //ENDOF Implementación ISignalContent

        //Implementación ISignalHandler
        bool ISignalHandler.HasValuesAt(int position, uint loopLength, bool recursive)
        {
            //return true if this value's individual offset equals target position
            return(SignalHelper.AbsoluteToRelativePosition(position, _offset, loopLength) == 0);
        }
Beispiel #25
0
        //private static void _SetupRefreshJob()
        //{

        //    //remove a previous job
        //    Action remove = HttpContext.Current.Cache["Refresh"] as Action;
        //    if (remove is Action)
        //    {
        //        HttpContext.Current.Cache.Remove("Refresh");
        //        remove.EndInvoke(null);
        //    }

        //    //get the worker
        //    Action work = () => {
        //        while (true)
        //        {
        //            Thread.Sleep(60000);
        //            WebClient refresh = new WebClient();
        //            try
        //            {
        //                refresh.UploadString("http://salesapp.ssg-sy.com", string.Empty);
        //                refresh.UploadString("http://salesapp.ssg-sy.com/remote", string.Empty);
        //            }
        //            catch (Exception ex)
        //            {
        //                //snip...
        //            }
        //            finally
        //            {
        //                refresh.Dispose();
        //            }
        //        }
        //    };
        //    work.BeginInvoke(null, null);

        //    //add this job to the cache
        //    HttpContext.Current.Cache.Add(
        //        "Refresh",
        //        work,
        //        null,
        //        Cache.NoAbsoluteExpiration,
        //        Cache.NoSlidingExpiration,
        //        CacheItemPriority.Normal,
        //        (s, o, r) => { _SetupRefreshJob(); }
        //        );
        //}
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            // Initialize Mapper
            DtoMappings.Initialize();

            //Initialise Bootstrapper
            Bootstrapper.Initialise();

            FluentValidationModelValidatorProvider.Configure(
                provider =>
            {
                provider.ValidatorFactory = new DependencyResolverModelValidatorFactory();

                provider.Add(
                    typeof(IsEmailUniquePropertyValidator),
                    (metadata, context, rule, validator) => new IsEmailUniqueClientPropertyValidator(metadata, context, rule, validator));

                /// GuideCity ///
                // provider.Add(
                //    typeof(GuideIsArabicNameAddUniquePropertyValidator),
                //    (metadata, context, rule, validator) => new GuideIsArabicNameAddUniqueClientPropertyValidator(metadata, context, rule, validator));
                // provider.Add(
                //   typeof(GuideIsEnglishNameAddUniquePropertyValidator),
                //   (metadata, context, rule, validator) => new GuideIsEnglishNameAddUniqueClientPropertyValidator(metadata, context, rule, validator));
                // provider.Add(
                //   typeof(GuideIsArabicNameEditUniquePropertyValidator),
                //   (metadata, context, rule, validator) => new GuideIsArabicNameEditUniqueClientPropertyValidator(metadata, context, rule, validator));
                // provider.Add(
                //  typeof(GuideIsEnglishNameEditUniquePropertyValidator),
                //  (metadata, context, rule, validator) => new GuideIsEnglishNameEditUniqueClientPropertyValidator(metadata, context, rule, validator));
                // provider.Add(
                //typeof(GuideIsExistIdEditUniquePropertyValidator),
                //(metadata, context, rule, validator) => new GuideIsExistIdEditUniqueClientPropertyValidator(metadata, context, rule, validator));
                //// provider.Add(
                //typeof(GuideIsCityIdExistPropertyValidator),
                //(metadata, context, rule, validator) => new GuideIsCityIdExistClientPropertyValidator(metadata, context, rule, validator));


                /// GuideTown ///
                //  provider.Add(
                // typeof(GuideIsIdExistTownPropertyValidator),
                // (metadata, context, rule, validator) => new GuideIsIdExistTownClientPropertyValidator(metadata, context, rule, validator));
                ////  provider.Add(
                //typeof(GuideIsCityIdExistPropertyValidator),
                //(metadata, context, rule, validator) => new GuideIsCityIdExistClientPropertyValidator(metadata, context, rule, validator));

                /// City ///
                // provider.Add(
                //    typeof(IsArabicNameAddUniquePropertyValidator),
                //    (metadata, context, rule, validator) => new IsArabicNameAddUniqueClientPropertyValidator(metadata, context, rule, validator));
                // provider.Add(
                //    typeof(IsEnglishNameAddUniquePropertyValidator),
                //    (metadata, context, rule, validator) => new IsEnglishNameAddUniqueClientPropertyValidator(metadata, context, rule, validator));
                // provider.Add(
                // typeof(IsArabicNameEditUniquePropertyValidator),
                // (metadata, context, rule, validator) => new IsArabicNameEditUniqueClientPropertyValidator(metadata, context, rule, validator));
                // provider.Add(
                // typeof(IsEnglishNameEditUniquePropertyValidator),
                // (metadata, context, rule, validator) => new IsEnglishNameEditUniqueClientPropertyValidator(metadata, context, rule, validator));
                // provider.Add(
                // typeof(IsExistIdEditUniquePropertyValidator),
                //(metadata, context, rule, validator) => new IsExistIdEditUniqueClientPropertyValidator(metadata, context, rule, validator));


                /// Town ///
                //provider.Add(
                // typeof(IsCityIdExistPropertyValidator),
                //(metadata, context, rule, validator) => new IsCityIdExistClientPropertyValidator(metadata, context, rule, validator));
                //  provider.Add(
                // typeof(IsIdExistTownPropertyValidator),
                //(metadata, context, rule, validator) => new IsIdExistTownClientPropertyValidator(metadata, context, rule, validator));
                //  provider.Add(
                // typeof(IsPlaceIdUniqueAddPropertyValidator),
                //(metadata, context, rule, validator) => new IsPlaceIdUniqueAddClientPropertyValidator(metadata, context, rule, validator));

                //   provider.Add(
                // typeof(IsPlaceIdUniqueEditPropertyValidator),
                //(metadata, context, rule, validator) => new IsPlaceIdUniqueEditClientPropertyValidator(metadata, context, rule, validator));


                /// Classify ///
            });

            AntiForgeryConfig.SuppressIdentityHeuristicChecks = true;


            //SignalR start for notifications
            SignalHelper.Start();
        }
 public override void OnError(Exception e)
 {
     Complete(SignalHelper.Error <T>(e));
 }