ids)
{
var batchErrorHeader = $"{_localizer["Common_BatchDelete_Failed"].Value}
";
var batchResult = new BatchResponseVm(batchErrorHeader) { Success = true };
foreach (var id in ids)
{
var item = await _systemMessageService.GetToSendAsync(id);
if (item != null)
{
//await _customerService.ResetTypeAsync(item.Id); //Spezial zurücksetzen wenn nötig
var specialCount = 0;
if (specialCount == 0)
{
batchResult.BatchResponseList.Add(new BatchResponseItemVm() { Id = item.Id.ToString(), Name = item.Title, Success = true, NotFound = false, ErrorMessage = "" });
_systemMessageService.RemoveToSend(item);
}
else
{
if (specialCount != 0)
{
batchResult.Success = false;
batchResult.BatchResponseList.Add(new BatchResponseItemVm() { Id = id.ToString(), Name = item.Title, Success = false, NotFound = false, ErrorMessage = string.Format(_localizer["Common_BatchDelete_InUse"], $"{item.Title}", $"{specialCount}") + "
" });
}
}
}
else
{
batchResult.Success = false;
batchResult.BatchResponseList.Add(new BatchResponseItemVm() { Id = id.ToString(), Name = "", Success = false, NotFound = true, ErrorMessage = string.Format(_localizer["Common_BatchDelete_NotFound"], $"{id}") + "
" });
}
}
if (batchResult.BatchResponseList.Any(c => c.Success))
await _systemMessageService.CommitAsync(User.Identity.Name);
return Json(batchResult);
}
///
/// Senden von Systemnachrichten
///
/// Id der Systemnachricht die gesendet werden soll
/// Json
[Authorize(Policy = Policies.PowerUserOnly)]
[HasPermission(Permission.AppUsersManage, Permission.AppUsersSystemMessages)]
[HttpPost]
public async Task Send(long id)
{
var result = new ResponseVm { Success = false };
var item = await _systemMessageService.GetToSendAsync(id);
if (item != null && item.HasBeenSent == false)
{
item.AppUserCount = await _appUserService.CountForSystemMessageAsync(new SystemMessageAppUserQuery() { AppUserType = item.AppUserType, City = item.City, Country = item.Country, Sex = item.Sex, State = item.State, VerifiedOnly = item.VerifiedOnly, Zip = item.Zip });
item.SentCount = item.AppUserCount;
item.HasBeenSent = true;
item.SentDate = DateTimeOffset.UtcNow;
item.SentBy = User.Identity.Name;
await _systemMessageService.CommitAsync(User.Identity.Name);
var appUsers = await _appUserService.GetForSystemMessageAsync(new SystemMessageAppUserQuery() { AppUserType = item.AppUserType, City = item.City, Country = item.Country, Sex = item.Sex, State = item.State, VerifiedOnly = item.VerifiedOnly, Zip = item.Zip });
var sentCount = 0;
foreach (var appUser in appUsers)
{
sentCount += 1;
_systemMessageService.Add(appUser.Id, appUser.Type, item.Id.ToString(), DateTimeOffset.UtcNow.AddDays(14), item.Message);
if (item.SendPushNotification)
{
await _pushNotificationService.SendNewTextMessageAsync(appUser.Id, item.Id.ToString());
}
}
if (sentCount > 0)
{
await _systemMessageService.CommitAsync(User.Identity.Name);
}
result.Success = true;
return Json(result);
}
return Json(result);
}
}
}