public async Task <IActionResult> Create(ClientCreate model) { if (model.MobileNumber.StartsWith('0')) { model.MobileNumber = "962" + model.MobileNumber.Substring(1); } else { model.MobileNumber = "962" + model.MobileNumber; } bool existUsername = _db.ApplicationUsers.FirstOrDefault(x => x.UserName == model.Username) == null ? false : true; bool existMobileNumber = _db.ApplicationUsers.FirstOrDefault(x => x.MobileNumber == model.MobileNumber) == null ? false : true; if (existUsername) { throw new Exception("اسم المستخدم مستخدم"); } if (existMobileNumber) { throw new Exception("رقم الهاتف مستخدم"); } long userId = _principalService.GetUserId(); ApplicationUser user = new ApplicationUser { CreatedAt = DateTime.Now, CreatedBy = userId, Email = model.Email, FullName = model.ClientFullName, IsActive = true, MobileNumber = model.MobileNumber, UserName = model.Username, UserGuid = Guid.NewGuid() }; var result = await _userManager.CreateAsync(user, model.Password); if (result.Succeeded) { CreateRoleIfNotExist("Client", user.Id); Client client = new Client { Address = model.Address, CreatedAt = DateTime.Now, CreatedBy = userId, ClientFullName = model.ClientFullName, Email = model.Email, MobileNumber = model.MobileNumber, UserId = user.Id, IsActive = true, CLientGuid = Guid.NewGuid() }; _db.Clients.Add(client); var added = _db.SaveChanges(); AddAreaGroupPriceForClientId(client.Id); return(new OkObjectResult(1)); } throw new Exception("حصل خطأ"); }
public Order Create(OrderCreate model) { long adminId = _principalService.GetUserId(); long managerId = _db.Employees.FirstOrDefault(x => x.UserId == adminId).Id; // Todo: change datetime.now to orderdate by configurations DateTime orderDate = _db.Configurations.FirstOrDefault().OrdersDate; int areaGroupId = _db.Areas.FirstOrDefault(x => x.Id == model.AreaId).AreaGroupId; Record record = _db.Records.FirstOrDefault(x => x.AreaGroupId == areaGroupId && x.RecordDate == orderDate); Order order = new Order { Address = model.Address, AreaId = model.AreaId, ClientId = model.ClientId, CreatedAt = DateTime.Now, DeliveryPhoneNumber = model.DeliveryNumber, OrderDate = orderDate, OrderItemTypeDescription = model.OrderItemDescription, OrderTotalPrice = model.OrderTotalPrice, CreatedById = managerId, OrderNumber = Guid.NewGuid(), PolicyNumber = model.PolicyNumber, AddedPrice = model.AddedPrice, IsActive = true, OrderStatusId = 2 }; if (record != null) { order.RecordId = record.Id; } else { Record newRecord = new Record { AreaGroupId = areaGroupId, CreatedAt = DateTime.Now, CreatedById = adminId, RecordDate = orderDate, RecordGuid = Guid.NewGuid(), IsActive = true }; _db.Records.Add(newRecord); _db.SaveChanges(); order.RecordId = newRecord.Id; } _db.Orders.Add(order); _db.SaveChanges(); return(order); }
public Area Create(AreaCreate model) { Area area = new Area { AreaGroupId = model.AreaGroupId, AreaName = model.AreaName, CityId = model.CityId, DriverPrice = model.DriverPrice, AreaGuid = Guid.NewGuid() }; _db.Areas.Add(area); _db.SaveChanges(); return(area); }
public IActionResult Create(OrderReportReplaysCreate model) { long userId = _principalService.GetUserId(); long clientId = _db.Clients.FirstOrDefault(x => x.UserId == userId).Id; OrderReport report = _db.OrderReports.Where(x => x.Id == model.OrderReportId) .Include(x => x.CreatedBy) .ThenInclude(y => y.User) .Include(x => x.Order) .ThenInclude(x => x.Record) .FirstOrDefault(); Driver driver = _db.Drivers.FirstOrDefault(x => x.Id == report.Order.Record.DriverId); OrderReportReplaye orderReportReplay = new OrderReportReplaye { IsActive = true, CreatedById = clientId, CreatedAt = DateTime.Now, ClientComment = model.ClientComments, DriverLatitude = (double)report.CreatedBy.User.Latitude, DriverLongitude = (double)report.CreatedBy.User.Longitude, OrderReportId = model.OrderReportId }; _db.OrderReportReplayes.Add(orderReportReplay); _db.SaveChanges(); PushNotificationInput pushNotificationInput = new PushNotificationInput { UserId = driver.UserId, title = "رد على البلاغ ", body = "تم الرد على البلاغ", data = new { orderId = report.OrderId, } }; _pushNotificationService.PushNotification(pushNotificationInput); DataBase.Entities.Notification notification = new DataBase.Entities.Notification { Title = "رد على بلاغ", Body = "تم تقديم رد على بلاغ على طلب رقم " + report.OrderId + " رقم الهاتف : " + report.Order.DeliveryPhoneNumber + "نص الرد : " + model.ClientComments, Target = NotificationTarget.Tracker, NotificationGuid = Guid.NewGuid() }; _db.Notifications.Add(notification); _db.SaveChanges(); return(new OkObjectResult(true)); }
public OrderReport Create(OrderReportCreate model) { long userId = _principalService.GetUserId(); //ApplicationUser user = _userManager.Users.Where(x => x.Id == userId).FirstOrDefault(); long driverId = _db.Drivers.FirstOrDefault(x => x.UserId == userId).Id; Order order = _db.Orders.Where(x => x.Id == model.OrderId) .Include(x => x.Client).ThenInclude(x => x.User).FirstOrDefault(); //Order number not order guid OrderReport orderReport = new OrderReport { IsActive = true, CreatedById = driverId, CreatedAt = DateTime.Now, DriverComments = model.DriverComments, Latitude = model.Latitude, Longitude = model.Longitude, OrderId = model.OrderId, OrderReportGuid = Guid.NewGuid() }; _db.OrderReports.Add(orderReport); _db.SaveChanges(); if (order != null) { PushNotificationInput pushNotificationInput = new PushNotificationInput { UserId = order.Client.User.Id, title = "بلاغ جديد", body = "تم تقديم بلاغ على طلبك", data = new { orderId = orderReport.OrderId, } }; _pushNotificationService.PushNotification(pushNotificationInput); DataBase.Entities.Notification notification = new DataBase.Entities.Notification { Title = "بلاغ جديد", Body = "تم تقديم بلاغ على طلب رقم " + order.Id + " رقم الهاتف : " + order.DeliveryPhoneNumber + "نص البلاغ : " + orderReport.DriverComments, Target = NotificationTarget.Tracker, NotificationGuid = Guid.NewGuid() }; _db.Notifications.Add(notification); _db.SaveChanges(); } return(orderReport); }
public bool MoveOrders(MoveOrdersDTO ordersDTO) { long userId = _principalService.GetUserId(); if (ordersDTO.RecordId == -1) { Record record = new Record { Id = 0, AreaGroupId = ordersDTO.AreaGroupId, CreatedById = userId, CreatedAt = DateTime.Now, IsActive = true, RecordDate = ordersDTO.RecordDate }; _db.Records.Add(record); _db.SaveChanges(); return(BindRecordOrders(ordersDTO.Orders, record.Id)); } return(BindRecordOrders(ordersDTO.Orders, ordersDTO.RecordId)); }
private void CreateRoleIfNotExist(string name, long userId) { Roles role = _db.Roles.Where(x => x.Name == name).FirstOrDefault(); UserRoles userRole = new UserRoles { RoleId = role.Id, UserId = userId }; _db.UserRoles.Add(userRole); _db.SaveChanges(); }
public IActionResult SetOrdersDate(DateTime newOrdersDate) { Configuration ordersDate = _db.Configurations.FirstOrDefault(); ordersDate.OrdersDate = newOrdersDate.Date; var result = _db.SaveChanges(); if (result > 0) { return(new OkObjectResult("تم تحديث تاريخ الطلبات بنجاح")); } throw new Exception("حصل خطأ ما "); }
public async Task <IActionResult> Create(DriverCreate model) { if (model.MobileNumber.StartsWith('0')) { model.MobileNumber = "962" + model.MobileNumber.Substring(1); } else { model.MobileNumber = "962" + model.MobileNumber; } CheckCredetials(model.Username, model.Email, model.MobileNumber); long userId = _principalService.GetUserId(); var result = await CreateUser(userId, model); if (result != 0) { Driver driver = new Driver { Address = model.Address, CreatedAt = DateTime.Now, CreatedBy = userId, DriverFullName = model.DriverFullName, MobileNumber = model.MobileNumber, DrivingLisenceNumber = model.DrivingLisenceNumber, Status = model.Status, UserId = result, IsActive = true, DriverGuid = Guid.NewGuid() }; _db.Drivers.Add(driver); int driverResult = _db.SaveChanges(); if (driverResult == 1) { return(new OkObjectResult(driverResult)); } throw new Exception("حصل خطأ"); } throw new Exception("حصل خطأ"); }
public IActionResult UpdateClientAreaGroupPrice(ClientAreaGroupPriceDto clientAreaGroupPriceDto) { AreaGroupClientPrices clientAreaGroupPrice = _db.AreaGroupClientPrices.Where(x => x.Id == clientAreaGroupPriceDto.PriceId && x.AreaId == clientAreaGroupPriceDto.AreaId).FirstOrDefault(); if (clientAreaGroupPrice != null) { clientAreaGroupPrice.Price = (double)clientAreaGroupPriceDto.Price; _db.SaveChanges(); return(new OkObjectResult(true)); } else { AreaGroupClientPrices newClientAreaGroupPrice = new AreaGroupClientPrices { AreaId = (int)clientAreaGroupPriceDto.AreaId, ClientId = (int)clientAreaGroupPriceDto.ClientId, Price = (double)clientAreaGroupPriceDto.Price }; _db.AreaGroupClientPrices.Add(newClientAreaGroupPrice); _db.SaveChanges(); return(new OkObjectResult(true)); } }
public async Task <IActionResult> ImportExcell(int year, IFormFile file) { try { string sWebRootFolder = _hostingEnvironment.WebRootPath; if (file == null || file.Length <= 0) { return(BadRequest("File is empty")); } if (!Path.GetExtension(file.FileName).Equals(".xlsx", StringComparison.OrdinalIgnoreCase)) { return(BadRequest("The file extention is not valid")); } string path = this._hostingEnvironment.WebRootPath + "\\Files\\" + year; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } string fullPath = Path.Combine(path, file.FileName); List <Client> clients = new List <Client>(); using (var stream = new FileStream(fullPath, FileMode.Create)) { await file.CopyToAsync(stream); using (var package = new ExcelPackage(stream)) { ExcelWorksheet worksheet = package.Workbook.Worksheets[0]; var rowCount = worksheet.Dimension.End.Row; Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB"); //dd/MM/yyyy for (int row = 2; row <= rowCount; row++) { Client cleint = new Client(); if (worksheet.Cells[row, 2] != null) { cleint.ClientFullName = worksheet.Cells[row, 1].Value.ToString().Trim(); cleint.MobileNumber = worksheet.Cells[row, 2].Value.ToString().Trim(); cleint.Address = worksheet.Cells[row, 3].Value.ToString().Trim(); cleint.IsActive = true; cleint.CreatedAt = DateTime.Now; cleint.CreatedBy = 10033; cleint.CLientGuid = Guid.NewGuid(); ApplicationUser user = new ApplicationUser { CreatedAt = DateTime.Now, CreatedBy = 10033, Email = "", FullName = cleint.ClientFullName, IsActive = true, MobileNumber = "0" + cleint.MobileNumber, UserName = "******" + cleint.MobileNumber, UserGuid = Guid.NewGuid() }; var result = await _userManager.CreateAsync(user, "123456"); if (result.Succeeded) { CreateRoleIfNotExist("Client", user.Id); Client client = new Client { Address = cleint.Address, CreatedAt = DateTime.Now, CreatedBy = 10033, ClientFullName = cleint.ClientFullName, Email = "", MobileNumber = "0" + cleint.MobileNumber, UserId = user.Id, IsActive = true, CLientGuid = Guid.NewGuid() }; _context.Clients.Add(client); _context.SaveChanges(); var added = _context.SaveChanges(); AddAreaGroupPriceForClientId(client.Id); } } } } } return(Ok()); } catch (Exception e) { return(BadRequest(e)); } }