Example #1
0
        public async Task <ActionResultResponse> Insert(string tenantId, ConfigMailTempMeta configMailTempMeta)
        {
            if (!configMailTempMeta.ConfigMailTempDetailMetas.Any())
            {
                return(new ActionResultResponse(-1, _sharedResourceService.GetString("Please enter at least one mail.")));
            }

            var configMailTempId = Guid.NewGuid().ToString();
            var configMailTemp   = new ConfigMailTemp
            {
                Id              = configMailTempId,
                TenantId        = tenantId,
                MailTempGroupId = configMailTempMeta.MailTempGroupId,
                Description     = configMailTempMeta.Description,
                IsActive        = configMailTempMeta.IsActive,
                IsDelete        = configMailTempMeta.IsDelete,
                Type            = configMailTempMeta.Type,
            };

            var result = await _configMailTempRepository.Insert(configMailTemp);

            if (result <= 0)
            {
                return(new ActionResultResponse(result, _sharedResourceService.GetString("Something went wrong. Please contact with administrator.")));
            }

            var configMailTempDetails = new List <ConfigMailTempDetail>();

            foreach (var configMailTempDetailMeta in configMailTempMeta.ConfigMailTempDetailMetas)
            {
                configMailTempDetails.Add(new ConfigMailTempDetail
                {
                    Id               = Guid.NewGuid().ToString(),
                    TenantId         = tenantId,
                    ConfigMailTempId = configMailTemp.Id,
                    MailId           = configMailTempDetailMeta.MailId,
                    Type             = configMailTempDetailMeta.Type,
                });
            }

            var resultInsertDetailSender = await _configMailTempDetailRepository.Inserts(configMailTempDetails);

            if (resultInsertDetailSender > 0)
            {
                return(new ActionResultResponse(resultInsertDetailSender, _resourceService.GetString("Add new ConfigMailTempDetail successful.")));
            }

            await RollbackInsert(configMailTempId);

            return(new ActionResultResponse(-5, _resourceService.GetString("Can not insert new ConfigMailTemp. Please contact with administrator.")));
        }