public Response Handle(Request message) { var assets = new Models.Assets(message.Name, message.Mobile, message.Day, message.Hour, message.Address, message.Lat, message.Lon, message.Phone, message.Square, message.Email, message.AssetType, message.Details, message.Notes); this.EnsureInWeekDays(assets); this.EnsureNotInDayOff(assets); this.EnsureAvailableResources(assets, message.DuCode); foreach (var item in message.Items) { _context.Assetitems.Add(new Assetitems { Assetid = assets.Assetid, Assetname = item.AssetName, Assetnumber = item.AssetNumber, Notes = item.Note }); } _context.Assets.Add(assets); _context.SaveChanges(); new SmsService().Send($"تم استلام طلبكم بتاريخ {message.Day.Value.ToShortDateString()} لبرنامج جلب الاثاث يشترط في استلام التبرعات ان تكون مفككة وجاهزة للتحميل وذلك لسرعة خدمتكم ولكم فائق الشكر", message.Mobile); return(new Response { Id = assets.Assetid }); }
private void EnsureAvailableResources(Models.Assets assets, int duCode) { var count = this._context.Assets.Count(t => t.Day == assets.Day && t.Hour == assets.Hour && t.Stat != 2) + 1; if (this._context.AssetDuration.Any(t => t.Durcode.Value == duCode && t.Durcount < count)) { throw new BusinessException("عذراً، طاقتنا الاستيعابية لا تسمح بإستقبال طلبات أخرى في هذا التوقيت من اليوم، يرجى اختيار وقت آخر ."); } }
private void EnsureInWeekDays(Models.Assets assets) { if (!assets.Day.HasValue) { throw new BusinessException("رجاءا أدخل التاريخ"); } if (!this._context.Weekdayes.Any(t => t.Name.Equals(assets.Day.Value.DayOfWeek.ToString(), StringComparison.OrdinalIgnoreCase) && t.State != 0)) { throw new BusinessException("اليوم الذي تم اختياره يوم عطلة"); } }
private void EnsureNotInDayOff(Models.Assets assets) { if (!assets.Day.HasValue) { throw new BusinessException("رجاءا أدخل التاريخ"); } if (this._context.Offdayes.Any(t => (assets.Day.Value >= t.Frmdate && assets.Day.Value <= t.Todate) || assets.Day.Value == t.Frmdate.Value || assets.Day.Value == t.Todate.Value )) { throw new BusinessException("اليوم الذي تم اختياره يوم عطلة"); } }