Untitled
unknown
csharp
a year ago
5.7 kB
10
Indexable
private async Task<SendTaskToTabletResponse> SendToUser(ITaskRepository taskRepository, IEventRepository eventRepository, ITeamRepository teamRepository, ISettingsRepository settingsRepository, IEventFlowRepository eventFlowRepository, IMapper mapper, ISMSService sMsService, IEngineeringCompanyService engineeringCompanyService, SaveSendingTeamsCommand request, SendTaskToTabletResponse saveResult)
{
var team = await teamRepository.GetByIdWithVehicleCartable(request.TeamId);
var mapperTblEventFlow = mapper.Map<TblEventFlow>(request);
mapperTblEventFlow.FlowDate = Utilities.Utilities.ToPersianDateString(DateTime.Now, true);
mapperTblEventFlow.FlowTime = DateTime.Now.ToString("HH:mm");
mapperTblEventFlow.IsLatest = true;
if (!request.IsCustomUser.HasValue || !request.IsCustomUser.Value)
{
mapperTblEventFlow.ManualReferenced = true;
}
else
mapperTblEventFlow.ManualReferenced = false;
mapperTblEventFlow.FlowStatus = 0;
if (team != null && request.HasCartableDevice)
{
mapperTblEventFlow.ToUser = (int)team.SpecialistId!;
mapperTblEventFlow.Imei =
Convert.ToString(team.Vehicle.VehicleImei != null
? team.Vehicle.VehicleImei
: team.Cartable.FamTeamId);
if (team is { Specialist: not null, Driver: not null })
mapperTblEventFlow.EquippeNames = team.Specialist.UserName + ", " + team.Driver.UserName;
var tblEventFlow = await eventFlowRepository.AddAsync(mapperTblEventFlow);
await taskRepository.SetPreviousTasksLatestStatusAsync(request.EventInsId);
var mapperTblTask = mapper.Map<TblTask>(request);
mapperTblTask.EventFlowId = tblEventFlow.Id;
mapperTblTask.TaskStartDate = Utilities.Utilities.ToPersianDateString(DateTime.Now, true);
mapperTblTask.TaskStartTime = DateTime.Now.ToString("HH:mm");
mapperTblTask.TaskStartDateTime = DateTime.Now;
mapperTblTask.IsDeleted = false;
mapperTblTask.TaskStatus = (int)TaskStatus.ToBeDelivered;
mapperTblTask.NotDoneByEquippe = false;
mapperTblTask.IsLatest = true;
mapperTblTask.IsScheduled = false;
mapperTblTask.CanSetLocationManually = false;
mapperTblTask.InsertDateTime = DateTime.Now;
var tblTask = await taskRepository.AddAsync(mapperTblTask);
TblEventIns? tblevent = await eventRepository.GetByIdAsync(request.EventInsId);
if (tblevent != null)
{
tblevent.EventStatusId = (int)EventStatus.Inprogress;
await eventRepository.UpdateAsync(tblevent);
}
//should resolve dependency on engineeringCompanyService
EventChangeNotifier.Exec(tblevent.Id, engineeringCompanyService);
saveResult.SendTaskToTablet.TaskId = tblTask.Id;
saveResult.SendTaskToTablet.EventFlowID = tblEventFlow.Id;
saveResult.SendTaskToTablet.TeamID = request.TeamId;
saveResult.SendTaskToTablet.OutageEventID = request.EventInsId;
}
else
{
var @event = eventRepository.Get(on => on.Id == request.EventInsId).Select(t => new { t.ConsumerIns.MobileNo, t.ConsumerIns.ConsumerTel, t.ConsumerIns.ConsumerName }).FirstOrDefault();
RecipientInfo[] Recipients =
{
new()
{
FullName = @event.ConsumerName,
PhoneNumber = !string.IsNullOrWhiteSpace(@event.MobileNo)
? @event.MobileNo
: !string.IsNullOrWhiteSpace(@event.ConsumerTel)
? @event.ConsumerTel.StartsWith("09") ||
@event.ConsumerTel.StartsWith("9")
? @event.ConsumerTel
: ""
: ""
}
};
var setting = await settingsRepository.GetByNameEnAsync("MessageBodyAfterSendingTeam");
if (setting != null && !string.IsNullOrWhiteSpace(setting.Value))
{
MessageRecipientInfo[] messageRecipientInfos =
{
new()
{
MessageText = string.Format(setting.Value,request.EventInsId),
// $"مشترک گرامی اکیپ امداد برای حادثه شماره {request.EventInsId} اعزام شد مرکز ۱۲۲ شرکت آب و فاضلاب استان تهران",
Sender = _smservicesettings.FaultDetectorSender,
Recipients = Recipients
}
};
var message = new MessageRecipients
{
messageList = messageRecipientInfos,
requiresReply = false
};
sMsService.SendMessage(message);
}
}
return saveResult;
}
Editor is loading...
Leave a Comment