/// <summary> /// Android 推播訊息 /// </summary> /// <param name="RegistrationIDList">手機裝置中已註冊的KeyNumber清單</param> /// <param name="PushMsg">推播訊息</param> /// <returns></returns> public async Task <VerityResult> AndroidPushMessage(List <string> RegistrationIDList, AndroidPushMessageViewModel PushMsg) { VerityResult result = new VerityResult(); result = AndroinPushByFCM(RegistrationIDList, PushMsg); return(await Task.Run(() => result)); }
public async Task <IHttpActionResult> GetDailyBookings(CarTeamSearchViewModel SearchModel) { List <CustomerBookingViewModel> data = new List <CustomerBookingViewModel>(); VerityResult result = new VerityResult(); result = JudgeUserIdentifyNameToVerityResult(); if (!result.IsOk) { return(ReturnResponseMessageResult(result, HttpStatusCode.Unauthorized)); } var user = await _authBLL.FindByName(User.Identity.Name); if (user != null) { int?queryGroupId = _usersService.GetGroupId(user.Id); if (queryGroupId.HasValue) { SearchModel.GroupId = queryGroupId.Value; } data = _bookingService.GetCustomerBookingList(SearchModel); } return(new ResponseMessageResult( Request.CreateResponse( HttpStatusCode.OK, data ))); }
/// <summary> /// 新增帳號 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <VerityResult> CreateUser(CreateUserViewModel model) { VerityResult result = new VerityResult(); user AddUser = new user() { ur_id = Guid.NewGuid().ToString(), ur_ac = model.ur_ac, ur_pw = MD5Str.MD5(model.ur_pw), ur_ct = DateTime.Now, ur_is = true, ur_im = model.ur_im }; try { _user.Create(AddUser); result.Success = true; result.Message = "新增帳號成功"; } catch { result.Success = false; result.Message = "新增帳號失敗"; } return(await Task.Run(() => result)); }
public async Task <IHttpActionResult> SetDailyServiceTrips(TripInputViewModel model) { _logger.Information("SetDailyServiceTrips model: " + JsonConvert.SerializeObject(model)); VerityResult result = new VerityResult(); try { result = JudgeUserIdentifyNameToVerityResult(); if (!result.IsOk) { return(ReturnResponseMessageResult(result, HttpStatusCode.Unauthorized)); } string userId = _aspNetUsersService.QueryUser(User.Identity.Name).Id; result = await _putTripService.CreateOrUpdatePutTrip(model, userId); _logger.Information("SetDailyServiceTrips result: " + JsonConvert.SerializeObject(result)); return(new ResponseMessageResult( Request.CreateResponse( HttpStatusCode.OK, result ))); } catch (Exception ex) { _logger.Information("SetDailyServiceTrips Error: " + JsonConvert.SerializeObject(ex)); result.IsOk = false; result.Message = ex.Message.ToString(); return(ReturnResponseMessageResult(result, HttpStatusCode.InternalServerError)); throw ex; } }
// POST: api/CheckTotalRecord public async Task <IHttpActionResult> Get(string StartDateTime) { VerityResult result = new VerityResult(); try { SearchTime modelTime = new SearchTime { StartDateTime = DateTime.Parse(StartDateTime), }; var totalRecord = await _totalRecord.CheckTotalRecord(modelTime); result.Success = true; result.Message = "更新彙總紀錄成功"; return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.OK, result))); } catch (Exception ex) { result.Success = false; result.Message = JsonConvert.SerializeObject(ex); return(new ResponseMessageResult(Request.CreateResponse(HttpStatusCode.InternalServerError, result))); throw; } }
/// <summary> /// 上傳影像檔案與寫進貨物照片之DB操作 /// </summary> /// <param name="file"></param> /// <param name="UserId"></param> /// <param name="MessageID"></param> /// <param name="Count"></param> /// <returns></returns> public async Task <VerityResult> UploadImageFile(HttpPostedFileBase file, string UserId, string MessageID, int Count) { VerityResult verityResult = new VerityResult(); BookingGoodsPhotoViewModel goodsPhoto = new BookingGoodsPhotoViewModel(); string filePath = string.Empty; string fileDirectory = ConfigurationManager.AppSettings["UploadGoodsImagePath"] + UserId + "\\" + MessageID; if (!Directory.Exists(fileDirectory)) { Directory.CreateDirectory(fileDirectory); } string extension = Path.GetExtension(file.FileName); string customFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + Count + extension; filePath = fileDirectory + "/" + customFileName; ReSizeImage.SaveThumb(800, 600, file.InputStream, filePath); goodsPhoto.MessageId = MessageID; goodsPhoto.PhotoFileName = customFileName; verityResult = await _bookingService.CreateOrUpdateBookingGoodsPhoto(goodsPhoto); return(verityResult); }
/// <summary> /// 編輯帳號資料 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <VerityResult> EditUserItem(UserViewModel model) { VerityResult result = new VerityResult(); try { var query = _user.FindBy(x => x.ur_id == model.ur_id); if (query.Any()) { var list = query.FirstOrDefault(); user item = list; item.ur_ac = model.ur_ac; string Md5Str = MD5Str.MD5(model.ur_pw); item.ur_pw = Md5Str; if (!string.IsNullOrEmpty(model.ur_im)) { item.ur_im = model.ur_im; } _user.Update(item); } result.Success = true; result.Message = "編輯帳號資料成功"; } catch { result.Success = false; result.Message = "編輯帳號資料失敗"; } return(await Task.Run(() => result)); }
public async Task <IHttpActionResult> ImportDailyDriverSchedule(List <PublishScheduleInputViewModel> PublishScheduleInputModel) { _logger.Information("ImportDailyDriverSchedule model: " + JsonConvert.SerializeObject(PublishScheduleInputModel)); PublishScheduleVerifyResult publishScheduleresult = new PublishScheduleVerifyResult(); try { VerityResult result = new VerityResult(); result = JudgeUserIdentifyNameToVerityResult(); if (!result.IsOk) { return(ReturnResponseMessageResult(result, HttpStatusCode.Unauthorized)); } publishScheduleresult = await _bookingService.PublishToUpdateBooking(PublishScheduleInputModel); _logger.Information("ImportDailyDriverSchedule result: " + JsonConvert.SerializeObject(publishScheduleresult)); foreach (var pushItem in publishScheduleresult.PublishScheduleResultList) { AndroidPushMessageViewModel pushMsg = new AndroidPushMessageViewModel(); pushMsg.title = "平台發佈了新班表!"; pushMsg.body = "請大家確認" + pushItem.BookingDate + "班表😎"; pushMsg.readerid = pushItem.DriverId.ToString(); List <string> RegistrationIDList = new List <string>(); RegistrationIDList.Add(pushItem.KeyNumber); await _pushService.AndroidPushMessage(RegistrationIDList, pushMsg); } return(new ResponseMessageResult( Request.CreateResponse( HttpStatusCode.OK, publishScheduleresult ))); } catch (Exception ex) { _logger.Information("ImportDailyDriverSchedule Error: " + JsonConvert.SerializeObject(ex)); publishScheduleresult.VerityResult.IsOk = false; publishScheduleresult.VerityResult.Message = ex.Message.ToString(); return(new ResponseMessageResult( Request.CreateResponse( HttpStatusCode.InternalServerError, publishScheduleresult ))); throw ex; } }
public async Task <ActionResult <VerityResult> > UpdateUser(SystemUserModel InputModel) { VerityResult responseResult = new VerityResult(); try { responseResult = await _systemUserManager.CreateOrUpdateUser(InputModel, "Sys"); } catch (Exception ex) { responseResult.StatusCode = HttpStatusCode.InternalServerError; responseResult.Message = JsonConvert.SerializeObject(ex.Message); } return(responseResult); }
public VerityResult JudgeUserIdentifyNameToVerityResult() { VerityResult verityResult = new VerityResult(); if (User.Identity.Name == null) { verityResult.IsOk = false; verityResult.Message = Resource.TokenInactive; } else { verityResult.IsOk = true; } return(verityResult); }
/// <summary> /// 邊更打卡時間 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <VerityResult> SubmitClick_In(CheckRecordViewModel model) { VerityResult res = new VerityResult(); try { check_in item = new check_in(); var query = _check_in.FindBy(x => x.ci_sn == model.ci_sn); if (query.Any()) { item = query.FirstOrDefault(); item.ci_ut = model.ci_ut; item.ci_dt = model.ci_dt; var nowDate = item.ci_da.ToString("yyyy-MM-dd"); if (item.ci_ut != TimeSpan.Zero && item.ci_dt != TimeSpan.Zero) { TimeSpan dt1 = item.ci_ut; TimeSpan dt2 = item.ci_dt; TimeSpan ts = dt2.Subtract(dt1); double hours = Math.Round(ts.TotalHours, 1) - 1; if (hours > 0) { item.ci_hr = hours; } } ; item.Remark = "變更打卡時間"; _check_in.Update(item); res.Success = true; res.Message = "變更打卡資料成功"; } } catch { res.Success = false; res.Message = "變更打卡資料失敗"; } return(await Task.Run(() => res)); }
/// <summary> /// 建立指定路徑上所缺少的資料夾 /// </summary> /// <param name="path">The path.</param> /// <returns></returns> public static VerityResult CreateFolderIfNeeded(string path) { VerityResult result = new VerityResult(); if (!Directory.Exists(path)) { try { Directory.CreateDirectory(path); result.Success = true; } catch (Exception) { result.Success = false; result.Message = "新增指定路徑資料夾失敗"; } } return(result); }
/// <summary> /// 非同步執行推播API /// </summary> /// <param name="PushMsg"></param> /// <returns></returns> public async Task <Uri> RunPushApiAsync(PushMessageViewModel PushMsg) { _logger.Information("RunPushApiAsync model: " + JsonConvert.SerializeObject(PushMsg)); HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri(PushAPIUrl); httpClient.DefaultRequestHeaders.Accept.Clear(); httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); try { #region 新增手機推播訊息紀錄 VerityResult result = new VerityResult(); PhonePushMessageLog log = new PhonePushMessageLog(); log.MessageId = PushMsg.messageid; log.PushTime = BsonDateTime.Create(DateTime.Now); log.Title = PushMsg.title; log.Body = PushMsg.body; log.SenderId = PushMsg.senderid; log.ReaderId = PushMsg.readerid; log.KeyNumber = PushMsg.KeyNumber; log.MobileType = PushMsg.MobileType; log.Category = PushMsg.category; log.IsRead = false; log.IsDelete = false; result = await _phonePushMessageService.Create(log); #endregion HttpResponseMessage response = await httpClient.PostAsJsonAsync( "api/Push/PushNoticeMessage", PushMsg); response.EnsureSuccessStatusCode(); // return URI of the created resource. return(response.Headers.Location); } catch (Exception ex) { _logger.Information("RunPushApiAsync model: " + JsonConvert.SerializeObject(ex)); throw ex; } }
/// <summary> /// 註冊: 新增使用者資料 /// </summary> /// <param name="userModel"></param> /// <returns></returns> public async Task <IdentityResult> RegisterUser(UserModel userModel) { ApplicationUser newone = new ApplicationUser(); newone.UserName = userModel.PhoneNumber; newone.RealName = userModel.RealName; newone.PhoneNumber = userModel.PhoneNumber; newone.RegisterDate = DateTime.Now; newone.CreateUser = userId; newone.Area = userModel.Area; newone.PhoneNumberConfirmed = true; newone.Level = (byte)MemberLevelEnum.DriverLevel1; //暫定以車主等級 _logger.Information("AuthRepository_RegisterUser[ApplicationUser]: {0}", JsonConvert.SerializeObject(newone)); try { IdentityResult result = await _userManager.CreateAsync(newone, userModel.Password); _logger.Information("AuthRepository_RegisterUser(Create OK): {0}", JsonConvert.SerializeObject(result)); //帳號加入角色 AspNetUserRoles ur = new AspNetUserRoles(); ur.RoleId = userModel.RoleId; ur.UserId = newone.Id; ur.IsValid = true; _aspnetUserRoles.Create(ur); //CreateUserExtend userModel.Id = newone.Id; VerityResult verityResult = new VerityResult(); verityResult = await _aspnetUsersService.CreateOrUpdateUserExtend(userModel); _logger.Information("AuthRepository_RegisterUser_[CreateOrUpdateUserExtend]_Result: {0}", JsonConvert.SerializeObject(verityResult)); return(result); } catch (Exception ex) { _logger.Information("AuthRepository_RegisterUser_Exception: {0}", JsonConvert.SerializeObject(ex.Message.ToString())); throw ex; } }
public async Task <IHttpActionResult> QueryTripStatus(BookingIdModel SearchModel) { BookingStatusViewModel data = new BookingStatusViewModel(); VerityResult result = new VerityResult(); result = JudgeUserIdentifyNameToVerityResult(); if (!result.IsOk) { return(ReturnResponseMessageResult(result, HttpStatusCode.Unauthorized)); } data = await _bookingService.GetBookingStatusList(SearchModel); return(new ResponseMessageResult( Request.CreateResponse( HttpStatusCode.OK, data ))); }
public async Task <VerityResult> ConfirmOrder(List <OrderViewModel> model) { VerityResult result = new VerityResult(); List <Order> modellist = new List <Order>(); foreach (var OrderItem in from item in model let FindItem = _orderService.FindBy(x => x.OrderId == item.OrderId) where FindItem.Any() let OrderItem = FindItem.FirstOrDefault() select OrderItem) { OrderItem.Status = 1; modellist.Add(OrderItem); } if (modellist.Any()) { _orderService.UpdateMultiple(modellist); } return(await Task.Run(() => result)); }
/// <summary> /// 刪除帳號資料 /// </summary> /// <param name="ur_id"></param> /// <returns></returns> public async Task <VerityResult> DeleteUserItem(string ur_id) { VerityResult result = new VerityResult(); try { var query = _user.FindBy(x => x.ur_id == ur_id); if (query.Any()) { user item = query.FirstOrDefault(); _user.Delete(item); result.Success = true; result.Message = "刪除最新消息成功"; } } catch { result.Success = false; result.Message = "刪除最新消息失敗"; } return(await Task.Run(() => result)); }
public async Task <ActionResult> Save(BookingViewModel model, HttpPostedFileBase[] goodsPhotoUpload) { VerityBookingResult result = new VerityBookingResult(); if (ModelState.IsValid) { try { var user = _aspNetUsersService.GetUserModelByName(User.Identity.Name); result = await _bookingService.CreateOrUpdateBooking(model, user.Id, user.CompanyId); if (result.IsOk) { int count = 1; foreach (HttpPostedFileBase file in goodsPhotoUpload) { VerityResult uploadResult = new VerityResult(); bool isUpload = FileUploadVerify(file); if (isUpload) { uploadResult = await UploadImageFile(file, result.GoodOwnerId, result.MessageId, count); } count++; } TempData["SaveResult"] = result.Message; #region 推播 if (!string.IsNullOrEmpty(model.DriverId)) { string appellationGoodsOwner = string.Empty; if (!string.IsNullOrEmpty(user.Sex)) { appellationGoodsOwner = StringExt.AppellationName(user.RealName, user.Sex.Trim()); } else { appellationGoodsOwner = user.RealName; } string title = Resource.GoodsOwner + appellationGoodsOwner + Resource.ConfirmTransaction; string body = model.BookingDate + " " + model.StartAddress + Resource.GoToward + model.TargetAddress; PushMessageViewModel pushMsg = RunPushApi(title, body, user.Id, model.DriverId, 3, result.MessageId.ToString()); await RunPushApiAsync(pushMsg); } #endregion return(RedirectToAction("Index")); } else { TempData["SaveResult"] = result.Message; } } catch (Exception ex) { TempData["SaveResult"] = result.Message; _logger.Information($"Save BookingViewModel error : { JsonConvert.SerializeObject(ex)}"); throw ex; } } return(View("Create", model)); }
/// <summary> /// 更新彙整記錄 /// </summary> /// <param name="searchModel"></param> /// <returns></returns> public async Task <VerityResult> CheckTotalRecord(SearchTime searchModel) { VerityResult res = new VerityResult(); List <check_all> check_All = new List <check_all>(); try { DateTime nowDate = DateTime.Now; var year = searchModel.StartDateTime.Year; var month = searchModel.StartDateTime.Month; var days = 0; if (nowDate.Year == year && nowDate.Month == month) { days = nowDate.Day; } else { days = DateTime.DaysInMonth(year, month); } int weekDays = 0; for (int i = 0; i < days; i++) { // 判断是否為周六、周日 switch (searchModel.StartDateTime.DayOfWeek) { case DayOfWeek.Saturday: weekDays++; break; case DayOfWeek.Sunday: weekDays++; break; } searchModel.StartDateTime = searchModel.StartDateTime.AddDays(1); } // 工作日 int workDays = days - weekDays; var checkIn = from a in _check_in.GetAll() join c in _user.GetAll() on a.ur_id equals c.ur_id where a.ca_mo == month && a.ci_ut != TimeSpan.Zero && a.ci_dt != TimeSpan.Zero group a by new { a.ur_id, a.ca_mo, ca_ya = a.ci_da.Year, } into ga select new Check_AllViewModel { ur_id = ga.Key.ur_id, ca_ya = ga.Key.ca_ya, ca_mo = ga.Key.ca_mo, ca_dy = workDays, ca_on = ga.Count(), ca_hr = ga.Sum(x => x.ci_hr) }; if (checkIn.Any()) { foreach (var item in checkIn.ToList()) { check_all check_All_Item = new check_all(); var Find_check_all = _check_all.FindBy(x => x.ur_id == item.ur_id && x.ca_mo == item.ca_mo).ToList(); if (Find_check_all.Any()) { check_All_Item = Find_check_all.FirstOrDefault(); check_All_Item.ca_dy = item.ca_dy; check_All_Item.ca_on = item.ca_on; check_All_Item.ca_hr = item.ca_hr; check_All.Add(check_All_Item); _check_all.Update(check_All_Item); } else { check_All_Item.ur_id = item.ur_id; check_All_Item.ca_ya = item.ca_ya; check_All_Item.ca_mo = item.ca_mo; check_All_Item.ca_dy = item.ca_dy; check_All_Item.ca_on = item.ca_on; check_All_Item.ca_hr = item.ca_hr; check_All.Add(check_All_Item); _check_all.Create(check_All_Item); } } res.Success = true; res.Message = "更新打卡紀錄成功"; } } catch { res.Success = false; res.Message = "更新打卡紀錄失敗"; } return(await Task.Run(() => res)); }
/// <summary> /// 新增或更新使用者 /// </summary> /// <param name="InputModel"></param> /// <param name="UserId"></param> /// <returns></returns> public async Task <VerityResult> CreateOrUpdateUser(SystemUserModel InputModel, string UserId) { VerityResult result = new VerityResult(); try { SystemUser actionItem = new SystemUser(); if (InputModel.ID == 0) { actionItem.Code = InputModel.Code; actionItem.Name = InputModel.Name; actionItem.Password = "******"; actionItem.Token = " "; actionItem.CreateUser = UserId; actionItem.CreateTime = DateTime.Now; actionItem.Modifier = UserId; actionItem.ModifyTime = DateTime.Now; using (var uow = _dapperUnitOfWorkFactory.Create()) { _systemUserRepository.Add(actionItem); uow.SaveChanges(); } if (result.StatusCode != HttpStatusCode.InternalServerError) { result.StatusCode = HttpStatusCode.OK; result.Message = "CreateSuccess"; // string.Format(ResourceMessage.CreateSuccess, "SystemUser"); } } else { var existUser = _systemUserRepository.Get(InputModel.ID); if (existUser == null) { result.StatusCode = HttpStatusCode.NotFound; result.Message = "NotExistedData"; // string.Format(ResourceMessage.NotExistedData, InputModel.ID); } else { existUser.Modifier = UserId; existUser.ModifyTime = DateTime.Now; using (var uow = _dapperUnitOfWorkFactory.Create()) { _systemUserRepository.Add(actionItem); uow.SaveChanges(); } //_systemUserRepository.Update(dict, "ID"); result.StatusCode = HttpStatusCode.OK; result.Message = "UpdateSuccess"; // string.Format(ResourceMessage.UpdateSuccess, "SystemUser"); } } } catch (Exception ex) { result.StatusCode = HttpStatusCode.InternalServerError; result.Message = ex.Message; ExceptionLog log = new ExceptionLog() { FunctionName = " CreateOrUpdateUser(SystemUserModel InputModel, string UserId)", Parameter = InputModel, StatusCode = HttpStatusCode.InternalServerError, ExceptionMessage = ex }; } return(await Task.Run(() => result)); }
/// <summary> /// 新增或更新 放趟 /// </summary> /// <param name="model"></param> /// <param name="UserId"></param> /// <returns></returns> public async Task <VerityResult> CreateOrUpdatePutTrip(TripInputViewModel model, string UserId) { VerityResult result = new VerityResult(); using (var transaction = _putTripRepository._context.Database.BeginTransaction()) { try { PutTrip actionItem = new PutTrip(); int? groupId = _usersService.GetGroupId(UserId); var queryPutTrip = _db.PutTrip.Where(x => x.date.Value == model.date.Date && x.groupId == groupId); if (!queryPutTrip.Any()) { DbSetExt.CopyObject <PutTrip>(model, ref actionItem); var maxTripId = _db.PutTrip.Max(x => x.tripId); string generTripId = GetSerialNumber(maxTripId); actionItem.username = UserId; actionItem.groupId = _usersService.GetGroupId(UserId); actionItem.date = model.date; actionItem.createTime = DateTime.Now; actionItem.tripId = generTripId; actionItem.type = true; actionItem.isClose = true; actionItem.AuthorizeType = model.AuthotrizeType; _putTripRepository.Create(actionItem); result.IsOk = true; result.Message = string.Format(Resource.CreateSuccess, "PutTrip"); } else { actionItem = queryPutTrip.First(); #region 驗證是否是自己的車隊 groupId int?queryDriverGroupID = _usersService.GetGroupId(UserId); if (queryDriverGroupID.HasValue) { if (actionItem.groupId == queryDriverGroupID.Value) { DbSetExt.CopyObject <PutTrip>(model, ref actionItem); actionItem.isClose = false; actionItem.AuthorizeType = model.AuthotrizeType; actionItem.updateTime = DateTime.Now; _putTripRepository.Update(actionItem); result.IsOk = true; result.Message = string.Format(Resource.UpdateSuccess, "PutTrip"); } else { DbSetExt.CopyObject <PutTrip>(model, ref actionItem); var maxTripId = _db.PutTrip.Max(x => x.tripId); string generTripId = GetSerialNumber(maxTripId); actionItem.username = UserId; actionItem.groupId = _usersService.GetGroupId(UserId); actionItem.date = model.date; actionItem.createTime = DateTime.Now; actionItem.tripId = generTripId; actionItem.type = true; actionItem.isClose = true; actionItem.AuthorizeType = model.AuthotrizeType; _putTripRepository.Create(actionItem); result.IsOk = true; result.Message = string.Format(Resource.CreateSuccess, "PutTrip"); } } #endregion } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); result.Message = ex.Message.ToString(); result.IsOk = false; throw ex; } } return(await Task.Run(() => result)); }
public ResponseMessageResult ReturnResponseMessageResult(VerityResult Result, HttpStatusCode CustomHttpStatusCode) { return(new ResponseMessageResult( Request.CreateResponse(CustomHttpStatusCode, Result) )); }
public PublishScheduleVerifyResult() { VerityResult = new VerityResult(); PublishScheduleResultList = new List <PublishScheduleResult>(); }
/// <summary> /// FCM (Google firebase colud Message) /// </summary> /// <param name="RegistrationIDList">手機裝置中已註冊的KeyNumber清單</param> /// <param name="PushMsg">播訊息</param> /// <returns></returns> private VerityResult AndroinPushByFCM(List <string> RegistrationIDList, AndroidPushMessageViewModel PushMsg) { //Google Api Key string apiKEY = ConfigurationManager.AppSettings["AndroidApiKey"].ToString(); //Google firebase colud message SenderId string senderID = ConfigurationManager.AppSettings["FCMSenderId"].ToString(); _logger.Information("PushService AndroinPushByFCM paras: apikey= {0}, senderid= {1}, RegistrationIDList= {2}, PushMsg= {3}" , apiKEY, senderID, JsonConvert.SerializeObject(RegistrationIDList), JsonConvert.SerializeObject(PushMsg)); VerityResult result = new VerityResult(); result.IsOk = true; try { if (RegistrationIDList != null && RegistrationIDList.Count > 0) { foreach (var regid in RegistrationIDList) { WebRequest webRequest = WebRequest.Create("https://fcm.googleapis.com/fcm/send"); webRequest.Method = "post"; webRequest.ContentType = "application/json"; #region Set the Header property of the WebRequest. //"FCM伺服器金鑰"; webRequest.Headers.Add(string.Format("Authorization: key={0}", apiKEY)); //FCM寄件者 ID webRequest.Headers.Add(string.Format("Sender: id={0}", senderID)); #endregion var data = new { to = regid, data = PushMsg }; _logger.Information("PushService AndroinPushByFCM data:" + JsonConvert.SerializeObject(data)); string json = JsonConvert.SerializeObject(data); Byte[] byteArray = Encoding.UTF8.GetBytes(json); webRequest.ContentLength = byteArray.Length; using (Stream dataStream = webRequest.GetRequestStream()) { dataStream.Write(byteArray, 0, byteArray.Length); using (WebResponse webResponse = webRequest.GetResponse()) { using (Stream dataStreamResponse = webResponse.GetResponseStream()) { using (StreamReader tReader = new StreamReader(dataStreamResponse)) { String sResponseFromServer = tReader.ReadToEnd(); string str = sResponseFromServer; _logger.Information("PushService SendPushNotificationToFCM Result:" + str); } } } } } } } catch (Exception ex) { result.IsOk = false; result.Message = ex.Message.ToString(); _logger.Error(ex, "AndroinPushByFCM Error:" + ex.Message.ToString()); } return(result); }
public async Task <ActionResult> Save(BookingQuoteCollection model, HttpPostedFileBase[] goodsPhotoUpload) { VerityBookingResult result = new VerityBookingResult(); if (ModelState.IsValid) { try { var user = _aspNetUsersService.GetUserModelByName(User.Identity.Name); result = await _bookingService.UpdateBookingQuote(model, user.Id, user.CompanyId); if (result.IsOk) { int count = 1; if (goodsPhotoUpload != null) { foreach (HttpPostedFileBase file in goodsPhotoUpload) { VerityResult uploadResult = new VerityResult(); bool isUpload = FileUploadVerify(file); if (isUpload) { uploadResult = await UploadImageFile(file, result.GoodOwnerId, result.MessageId, count); } count++; } } TempData["SaveResult"] = result.Message; #region 推播通知原車主取消、新車主新任務 //原車主 var queryOriginDriver = _aspNetUsersService.GetUserModel(model.DriverQuotePrice.OldDriverId); string originDriver = string.Empty; if (!string.IsNullOrEmpty(queryOriginDriver.Sex)) { originDriver = StringExt.AppellationName(queryOriginDriver.RealName, queryOriginDriver.Sex.Trim()); } else { originDriver = queryOriginDriver.RealName; } string title = "原" + Resource.Driver + originDriver + MessageResource.CancelMission; string body = string.Empty; PushMessageViewModel pushMsg = RunPushApi(title, body, user.Id, model.DriverQuotePrice.OldDriverId, 10, model.Booking.MessageId.ToString()); await RunPushApiAsync(pushMsg); //新車主 var queryNewDriver = _aspNetUsersService.GetUserModel(model.DriverQuotePrice.DriverId); string newDriver = string.Empty; if (!string.IsNullOrEmpty(queryNewDriver.Sex)) { newDriver = StringExt.AppellationName(queryNewDriver.RealName, queryNewDriver.Sex.Trim()); } else { newDriver = queryNewDriver.RealName; } string newTitle = "新" + Resource.Driver + newDriver + MessageResource.HadNewMission; string newBody = string.Empty; PushMessageViewModel newPushMsg = RunPushApi(newTitle, newBody, user.Id, model.DriverQuotePrice.DriverId, 10, model.Booking.MessageId.ToString()); await RunPushApiAsync(newPushMsg); #endregion #region 推播通知貨主變更司機 //貨主 var queryGoodsOwner = _aspNetUsersService.GetUserModel(model.Booking.GoodOwnerId); string goodsOwner = string.Empty; if (!string.IsNullOrEmpty(queryGoodsOwner.Sex)) { goodsOwner = StringExt.AppellationName(queryGoodsOwner.RealName, queryGoodsOwner.Sex.Trim()); } else { goodsOwner = queryNewDriver.RealName; } string forgoodsOwnerTitle = "原" + Resource.Driver + originDriver + "變更為新" + Resource.Driver + newDriver; PushMessageViewModel goodsOwnerPushMsg = RunPushApi(forgoodsOwnerTitle, null, user.Id, model.Booking.GoodOwnerId, 10, model.Booking.MessageId.ToString()); await RunPushApiAsync(goodsOwnerPushMsg); #endregion return(RedirectToAction("Index")); } else { TempData["SaveResult"] = result.Message; } } catch (Exception ex) { TempData["SaveResult"] = result.Message; _logger.Information($"Save BookingViewModel error : { JsonConvert.SerializeObject(ex)}"); throw ex; } } return(View("Create", model)); }