283 lines
9.2 KiB
C#
283 lines
9.2 KiB
C#
using Microsoft.AspNetCore.Http.HttpResults;
|
|
using Amazon.S3.Model;
|
|
|
|
|
|
using ServerCommon;
|
|
|
|
|
|
using MetaAssets;
|
|
|
|
|
|
using UGQDataAccess.Repository.Models;
|
|
using UGQApiServer.Models;
|
|
using UGQDatabase.Models;
|
|
using UGQApiServer.Storage;
|
|
using UGQApiServer.UGQData;
|
|
using UGQDataAccess.Service;
|
|
|
|
|
|
namespace UGQApiServer.Converter;
|
|
|
|
|
|
public static class UGQConverter
|
|
{
|
|
static IStorageService _storageService = null!;
|
|
static UGQMetaData _ugqMetadata = null!;
|
|
|
|
public static void init(IStorageService storageService, UGQMetaData ugqMetadata)
|
|
{
|
|
_storageService = storageService;
|
|
_ugqMetadata = ugqMetadata;
|
|
}
|
|
|
|
public static UGQText ToDTO(this TextEntity entity)
|
|
{
|
|
return new UGQText
|
|
{
|
|
Kr = entity.Kr,
|
|
En = entity.En,
|
|
Jp = entity.Jp,
|
|
};
|
|
}
|
|
|
|
public static UGQTask ToDTO(this TaskEntity entity, LangEnum langEnum)
|
|
{
|
|
return new UGQTask
|
|
{
|
|
GoalText = entity.GoalText.ToDTO(),
|
|
ActionId = entity.ActionId,
|
|
ActionValue = entity.ActionValue,
|
|
IsShowNpcLocation = entity.IsShowNpcLocation,
|
|
UgcActionValueGuid = entity.UgcActionValueGuid,
|
|
UgcActionValueName = entity.UgcActionValueName,
|
|
DialogId = entity.DialogId,
|
|
|
|
ActionName = _ugqMetadata.getTaskActionName(entity.ActionId, langEnum),
|
|
ActionValueName = _ugqMetadata.getTaskActionValueName(entity.ActionId, entity.ActionValue, langEnum),
|
|
};
|
|
}
|
|
|
|
|
|
public static UGQAccount ToDTO(this AccountEntity entity)
|
|
{
|
|
return new UGQAccount
|
|
{
|
|
UserGuid = entity.UserGuid,
|
|
Nickname = entity.Nickname,
|
|
AccountId = entity.AccountId ?? "",
|
|
SlotCount = (MetaHelper.GameConfigMeta.UGQDefaultSlot + entity.AdditionalSlotCount),
|
|
GradeType = entity.GradeType,
|
|
CreatorPoint = entity.CreatorPoint,
|
|
};
|
|
}
|
|
|
|
public static UGQAccountItem ToDTO(this AccountItemResult entity)
|
|
{
|
|
return new UGQAccountItem
|
|
{
|
|
UserGuid = entity.UserGuid,
|
|
Nickname = entity.Nickname,
|
|
AccountId = entity.AccountId ?? "",
|
|
SlotCount = (MetaHelper.GameConfigMeta.UGQDefaultSlot + entity.AdditionalSlotCount),
|
|
GradeType = entity.GradeType,
|
|
CreatorPoint = entity.CreatorPoint,
|
|
QuestCount = entity.QuestCount,
|
|
CreatedAt = entity.CreatedAt,
|
|
};
|
|
}
|
|
|
|
public static UGQQuestProfitStats ToDTO(this QuestProfitStatsItemResult result, LangEnum langEnum)
|
|
{
|
|
return new UGQQuestProfitStats
|
|
{
|
|
QuestContentId = result.QuestContentId,
|
|
QuestId = result.QuestId,
|
|
Revision = result.Revision,
|
|
Title = result.Title.GetLangText(langEnum),
|
|
TitleImagePath = _storageService.fileUrl(result.TitleImagePath),
|
|
BannerImagePath = _storageService.fileUrl(result.BannerImagePath),
|
|
Completed = result.CompletedCount,
|
|
TotalProfit = result.TotalProfit,
|
|
};
|
|
}
|
|
|
|
public static UGQDialogSequenceAction ToDTO(this DialogSequenceActionEntity entity, LangEnum langEnum)
|
|
{
|
|
return new UGQDialogSequenceAction
|
|
{
|
|
Talker = entity.Talker,
|
|
Type = entity.Type,
|
|
Talk = entity.Talk.ToDTO(),
|
|
Condition = entity.Condition,
|
|
ConditionValue = entity.ConditionValue,
|
|
NextSequence = entity.NextSequence,
|
|
NpcAction = entity.NpcAction,
|
|
|
|
TypeName = _ugqMetadata.getDialogTypeName(entity.Type, langEnum),
|
|
ConditioneName = _ugqMetadata.getDialogConditionName(entity.Type, entity.Condition, langEnum),
|
|
ConditioneValueName = _ugqMetadata.getDialogConditionValueName(entity.Type, entity.Condition, entity.ConditionValue, langEnum),
|
|
};
|
|
}
|
|
|
|
public static UGQDialogSequence ToDTO(this DialogSequenceEntity entity, LangEnum langEnum)
|
|
{
|
|
return new UGQDialogSequence
|
|
{
|
|
SequenceId = entity.SequenceId,
|
|
Actions = entity.Actions.Select(x => x.ToDTO(langEnum)).ToList(),
|
|
};
|
|
}
|
|
|
|
public static UGQPresetImage ToDTO(this UGQPresetImageMetaData data)
|
|
{
|
|
return new UGQPresetImage
|
|
{
|
|
Id = data.Id,
|
|
ImagePath = _storageService.fileUrl(data.FileName),
|
|
};
|
|
}
|
|
|
|
|
|
public static UGQSummary ToDTO(this SummaryItemResult result, LangEnum langEnum)
|
|
{
|
|
string beaconName = "";
|
|
|
|
if (result.BeaconId != 0)
|
|
beaconName = _ugqMetadata.getBeaconName(result.BeaconId, langEnum);
|
|
else if (result.UgcBeaconNickname != null)
|
|
beaconName = result.UgcBeaconNickname;
|
|
|
|
return new UGQSummary
|
|
{
|
|
QuestContentId = result.QuestContentId,
|
|
QuestId = result.QuestId,
|
|
Revision = result.Revision,
|
|
|
|
UserGuid = result.UserGuid,
|
|
Author = result.Author,
|
|
|
|
BeaconId = result.BeaconId,
|
|
UgcBeaconGuid = result.UgcBeaconGuid,
|
|
|
|
GradeType = result.GradeType,
|
|
|
|
Title = result.Title.GetLangText(Culture.ToLangEnum(result.Savelanguage)),
|
|
Languages = ConverterCommon.buildLanguages(result.Title),
|
|
TitleImagePath = _storageService.fileUrl(result.TitleImagePath),
|
|
BannerImagePath = _storageService.fileUrl(result.BannerImagePath),
|
|
Description = result.Description.GetLangText(Culture.ToLangEnum(result.Savelanguage)),
|
|
State = result.State,
|
|
Cost = result.Cost,
|
|
UpdatedAt = result.UpdatedAt,
|
|
CreatedAt = result.CreatedAt,
|
|
Savelanguage = result.Savelanguage,
|
|
|
|
Stats = new UGQStats
|
|
{
|
|
Accepted = result.AcceptedCount,
|
|
Completed = result.CompletedCount,
|
|
Like = result.LikeCount,
|
|
Bookmark = result.BookmarkCount,
|
|
Report = result.ReportCount,
|
|
TotalProfit = result.TotalProfit,
|
|
},
|
|
|
|
BeaconName = beaconName,
|
|
};
|
|
}
|
|
|
|
public static UGQContent ToDTO(this QuestContentEntity entity, LangEnum langEnum)
|
|
{
|
|
string beaconName = "";
|
|
|
|
if (entity.BeaconId != 0)
|
|
beaconName = _ugqMetadata.getBeaconName(entity.BeaconId, langEnum);
|
|
else if (entity.UgcBeaconNickname != null)
|
|
beaconName = entity.UgcBeaconNickname;
|
|
|
|
return new UGQContent
|
|
{
|
|
QuestContentId = entity.Id,
|
|
QuestId = entity.QuestId,
|
|
Revision = entity.Revision,
|
|
BeaconId = entity.BeaconId,
|
|
UgcBeaconGuid = entity.UgcBeaconGuid,
|
|
|
|
GradeType = entity.GradeType,
|
|
Title = entity.Title.ToDTO(),
|
|
Languages = ConverterCommon.buildLanguages(entity.Title),
|
|
TitleImagePath = _storageService.fileUrl(entity.TitleImagePath),
|
|
BannerImagePath = _storageService.fileUrl(entity.BannerImagePath),
|
|
Description = entity.Description.ToDTO(),
|
|
State = entity.State,
|
|
Cost = entity.Cost,
|
|
Tasks = entity.Tasks.Select(x => x.ToDTO(langEnum)).ToList(),
|
|
LastUpdated = entity.UpdatedAt,
|
|
|
|
BeaconName = beaconName,
|
|
};
|
|
}
|
|
|
|
public static UGQDialog ToDTO(this QuestDialogEntity entity, LangEnum langEnum)
|
|
{
|
|
return new UGQDialog
|
|
{
|
|
DialogId = entity.Id,
|
|
Sequences = entity.Sequences.Select(x => x.ToDTO(langEnum)).ToList(),
|
|
};
|
|
}
|
|
|
|
public static UGQCreatorPointHistory ToDTO(this CreatorPointHistoryEntity entity, LangEnum langEnum)
|
|
{
|
|
return new UGQCreatorPointHistory
|
|
{
|
|
Kind = entity.Kind,
|
|
Amount = entity.Amount,
|
|
TotalAmount = entity.TotalAmount,
|
|
CreatedAt = entity.CreatedAt,
|
|
};
|
|
}
|
|
|
|
public static UGQCreatorPointHistoryResult ToDTO(this CreatorPointHistoryQueryResult result, LangEnum langEnum)
|
|
{
|
|
return new UGQCreatorPointHistoryResult
|
|
{
|
|
PageNumber = result.PageNumber,
|
|
PageSize = result.PageSize,
|
|
TotalPages = result.TotalPages,
|
|
Items = result.Items.Select(x => x.ToDTO(langEnum)).ToList(),
|
|
};
|
|
}
|
|
|
|
public static UGQReserveAccountGradeResult ToDTO(this ReserveAccountGradeEntity entity)
|
|
{
|
|
return new UGQReserveAccountGradeResult
|
|
{
|
|
ReserveId = entity.Id.ToString(),
|
|
UserGuid = entity.UserGuid,
|
|
CurrentGradeType = entity.BeforeGradeType,
|
|
ReserveGradeType = entity.ReserveGradeType,
|
|
ReserveTime = entity.ReserveTime,
|
|
UpdatedAt = entity.UpdatedAt,
|
|
IsCompleted = entity.IsCompleted,
|
|
};
|
|
}
|
|
|
|
public static UGQReserveAccountGradeResult ToDTO(this ReserveAccountGradeItemResult entity)
|
|
{
|
|
return new UGQReserveAccountGradeResult
|
|
{
|
|
ReserveId = entity.ReserveId,
|
|
UserGuid = entity.UserGuid,
|
|
AccountId = entity.AccountId,
|
|
CurrentGradeType = entity.CurrentGradeType,
|
|
ReserveGradeType = entity.ReserveGradeType,
|
|
ReserveTime = entity.ReserveTime,
|
|
UpdatedAt = entity.UpdatedAt,
|
|
IsCompleted = entity.IsCompleted,
|
|
};
|
|
}
|
|
}
|
|
|
|
|