public async Task <IActionResult> CastList(string id)
        {
            ProjeDetailDto model = await _ProjeServis.GetDetailAsync(id);

            //_ProjeServis.Pdf();
            return(View(model));
        }
        public async Task <FileResult> Zip(string id)
        {
            ProjeDetailDto model = await _ProjeServis.GetDetailAsync(id);

            List <InMemoryFile> files = new List <InMemoryFile>();

            foreach (var karakter in model.ProjeKarakterleri)
            {
                foreach (var oyuncu in karakter.Oyuncular)
                {
                    foreach (var resim in oyuncu.OyuncuResimleri)
                    {
                        string dosyaYeri = FileHelper._WebRootPath + resim.Replace("/", "\\");
                        if (System.IO.File.Exists(dosyaYeri))
                        {
                            string filename = $"{oyuncu.Adi} {oyuncu.Soyadi}_{oyuncu.OyuncuResimleri.IndexOf(resim) + 1}{Path.GetExtension(resim)}";

                            InMemoryFile file = new InMemoryFile
                            {
                                FileName = filename,
                                Content  = System.IO.File.ReadAllBytes(dosyaYeri)
                            };
                            files.Add(file);
                        }
                    }
                }
            }
            return(File(GetZipArchive(files), System.Net.Mime.MediaTypeNames.Application.Zip, $"{model.ProjeAdi.Replace(" ", "")}.zip"));
        }
        public async Task <IActionResult> MailGonder(string id)
        {
            ProjeDetailDto model = await _ProjeServis.GetDetailAsync(id);

            StringBuilder sb = new StringBuilder(FileHelper.ReadFile("\\MailTema\\ProjeTeklif.html"));

            sb.Replace("{ProjeAdi}", model.ProjeAdi);
            sb.Replace("{Ilgili}", model.IlgiliKisi);
            sb.Replace("{IlgiliTelefon}", model.IlgiliTelefon + " - " + model.IlgiliCep);
            sb.Replace("{IlgiliEPosta}", model.IlgiliEPosta);
            sb.Replace("{SunumLink}", $"{Request.Scheme}://{Request.Host}{Request.PathBase}/Projeler/Detail/{id}");

            _emailServis.SendEmail(model.EPostaAdresleri, $"Life Ajans {model.ProjeAdi} sunum.", sb.ToString(), model.IlgiliEPosta);

            MesajHelper.MesajEkle(ViewBag, "E-Posta gönderildi.");
            return(RedirectToAction(nameof(Detail), new { id }));
        }
        public async Task <FileResult> KimliklerDosya(string id)
        {
            ProjeDetailDto model = await _ProjeServis.GetDetailAsync(id);

            List <InMemoryFile> files = new List <InMemoryFile>();

            foreach (var karakter in model.ProjeKarakterleri)
            {
                foreach (var oyuncu in karakter.Oyuncular)
                {
                    if (oyuncu.KarakterDurumu == EnuKarakterDurumu.KabulEdildi)
                    {
                        if (oyuncu.KimlikOn.IsNotNull())
                        {
                            string dosyaYeri = FileHelper._WebRootPath + oyuncu.KimlikOn.Replace("/", "\\");
                            if (System.IO.File.Exists(dosyaYeri))
                            {
                                string filename = $"{oyuncu.Adi} {oyuncu.Soyadi}_{oyuncu.Tc}_On{Path.GetExtension(oyuncu.KimlikOn)}";

                                InMemoryFile file = new InMemoryFile
                                {
                                    FileName = filename,
                                    Content  = System.IO.File.ReadAllBytes(dosyaYeri)
                                };
                                files.Add(file);
                            }
                            dosyaYeri = FileHelper._WebRootPath + oyuncu.KimlikArka.Replace("/", "\\");
                            if (System.IO.File.Exists(dosyaYeri))
                            {
                                string filename = $"{oyuncu.Adi} {oyuncu.Soyadi}_{oyuncu.Tc}_Arka{Path.GetExtension(oyuncu.KimlikArka)}";

                                InMemoryFile file = new InMemoryFile
                                {
                                    FileName = filename,
                                    Content  = System.IO.File.ReadAllBytes(dosyaYeri)
                                };
                                files.Add(file);
                            }
                        }
                    }
                }
            }
            return(File(GetZipArchive(files), System.Net.Mime.MediaTypeNames.Application.Zip, $"{model.ProjeAdi.Replace(" ", "")}.zip"));
        }
Beispiel #5
0
        public async Task <ProjeDetailDto> GetDetailAsync(string guidId)
        {
            int id = 0;

            try
            {
                //ProjeDetailDto projeDetailDto = await _projeDal.GetDetailByGuidIdAsync(guidId);
                Proje proje = await _dal.GetAsync(new List <string> {
                    "Musteri", "IsiTakipEden", "IsiTakipEden.Kisi"
                }, i => i.GuidId == new Guid(guidId) && i.Aktif == true);

                List <ProjeKarakter> projeKarakterleri = await _ProjeKarakterServis.GetListByProjeIdAsync(proje.Id);

                //proje = await _dal.GetAsync(i => i.GuidId.Equals(guidId));


                var tasks = projeKarakterleri.Select(async karakter =>
                {
                    karakter.ProjeKarakterOyunculari = await _ProjeKarakterOyuncuServis.GetListByProjeKarakterIdAsync(karakter.Id);
                    foreach (var oyuncu in karakter.ProjeKarakterOyunculari)
                    {
                        var tResim = _oyuncuResimServis.GetListAsync(i => i.OyuncuId == oyuncu.OyuncuId && i.Aktif);
                        var tVideo = _oyuncuVideoServis.GetListAsync(i => i.OyuncuId == oyuncu.OyuncuId && i.Aktif);

                        oyuncu.Oyuncu.OyuncuResimleri = await tResim;
                        oyuncu.Oyuncu.OyuncuVideolari = await tVideo;
                    }
                });

                await Task.WhenAll(tasks);


                ProjeDetailDto projeDetailDto = new ProjeDetailDto
                {
                    Id                = proje.Id,
                    GuidId            = proje.GuidId,
                    MusteriAdi        = proje.Musteri.Adi,
                    ProjeAdi          = proje.Adi,
                    ProjeTarihBas     = proje.TarihBas,
                    ProjeTarihBit     = proje.TarihBit,
                    IlgiliKisi        = $"{proje.IsiTakipEden.Kisi.Adi} {proje.IsiTakipEden.Kisi.Soyadi}",
                    IlgiliCep         = proje.IsiTakipEden.Kisi.Cep,
                    IlgiliTelefon     = proje.IsiTakipEden.Kisi.Telefon,
                    IlgiliEPosta      = proje.IsiTakipEden.Kisi.EPosta,
                    EPostaAdresleri   = proje.EPostaAdresleri,
                    ProjeKarakterleri = new List <ProjeKarakterDetailDto>()
                };

                foreach (var karakter in projeKarakterleri)
                {
                    var karakterDetay = new ProjeKarakterDetailDto
                    {
                        Id             = karakter.Id,
                        Adi            = karakter.Adi,
                        KarakterSayisi = karakter.KarakterSayisi,
                        Oyuncular      = new List <OyuncuDetailDto>()
                    };

                    foreach (var oyuncu in karakter.ProjeKarakterOyunculari)
                    {
                        id = oyuncu.Id;
                        karakterDetay.Oyuncular.Add(new OyuncuDetailDto
                        {
                            Id              = oyuncu.Oyuncu.Id,
                            ProfilUrl       = oyuncu.Oyuncu.Kisi.ProfilFotoUrl,
                            KarakterDurumu  = oyuncu.KarakterDurumu,
                            Tc              = oyuncu.Oyuncu.Kisi.TC,
                            Adi             = oyuncu.Oyuncu.Kisi.Adi,
                            Soyadi          = oyuncu.Oyuncu.Kisi.Soyadi,
                            DogumTarihi     = oyuncu.Oyuncu.Kisi.DogumTarihi,
                            Cep             = oyuncu.Oyuncu.Kisi.Cep,
                            Telefon         = oyuncu.Oyuncu.Kisi.Telefon ?? oyuncu.Oyuncu.Kisi.Telefon2 ?? "",
                            Adres           = oyuncu.Oyuncu.Kisi.Adres,
                            Il              = ((Il)((Ilce)oyuncu.Oyuncu.Kisi.Ilce.IfIsNull(new Ilce())).Il.IfIsNull(new Il())).Adi,
                            Ilce            = ((Ilce)oyuncu.Oyuncu.Kisi.Ilce.IfIsNull(new Ilce())).Adi,
                            Yas             = oyuncu.Oyuncu.Kisi.DogumTarihi == null ? 0 : ((DateTime.Today.Year - oyuncu.Oyuncu.Kisi.DogumTarihi.Value.Year) - (oyuncu.Oyuncu.Kisi.DogumTarihi.Value > DateTime.Today.AddYears(-1 * (DateTime.Today.Year - oyuncu.Oyuncu.Kisi.DogumTarihi.Value.Year)) ? -1 : 0)),
                            KimlikOn        = oyuncu.Oyuncu.Kisi.KimlikOnUrl,
                            KimlikArka      = oyuncu.Oyuncu.Kisi.KimlikArkaUrl,
                            UstBeden        = oyuncu.Oyuncu.UstBeden,
                            AltBeden        = oyuncu.Oyuncu.AltBeden,
                            AyakNumarasi    = oyuncu.Oyuncu.AyakNumarasi,
                            Boy             = oyuncu.Oyuncu.Boy,
                            Kilo            = oyuncu.Oyuncu.Kilo,
                            GozRengi        = oyuncu.Oyuncu.GozRengi,
                            SacRengi        = oyuncu.Oyuncu.SacRengi,
                            TenRengi        = oyuncu.Oyuncu.TenRengi,
                            OyuculukEgitimi = oyuncu.Oyuncu.OyuculukEgitimi,
                            Tecrubeler      = oyuncu.Oyuncu.Tecrubeler,
                            YabanciDil      = oyuncu.Oyuncu.YabanciDil,
                            Yetenekleri     = oyuncu.Oyuncu.Yetenekleri,
                            OyuncuResimleri = oyuncu.Oyuncu.OyuncuResimleri.OrderByDescending(d => d.EklemeZamani).Take(3).Select(i => i.DosyaYolu).ToList(),
                            OyuncuVideolari = oyuncu.Oyuncu.OyuncuVideolari.OrderByDescending(d => d.EklemeZamani).Take(3).Select(i => i.DosyaYolu).ToList()
                        });
                    }


                    projeDetailDto.ProjeKarakterleri.Add(karakterDetay);
                }



                return(projeDetailDto);
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
        public async Task <IActionResult> ExcelList(string id)
        {
            ProjeDetailDto model = await _ProjeServis.GetDetailAsync(id);

            byte[] fileContents;

            using (var package = new ExcelPackage())
            {
                var worksheet = package.Workbook.Worksheets.Add("Sheet1");

                // Put whatever you want here in the sheet
                // For example, for cell on row1 col1
                worksheet.Cells[1, 1].Value                  = "Sıra";
                worksheet.Cells[1, 1].Style.Font.Size        = 12;
                worksheet.Cells[1, 1].Style.Font.Bold        = true;
                worksheet.Cells[1, 1].Style.Border.Top.Style = ExcelBorderStyle.Hair;
                worksheet.Column(1).Width = 6;

                worksheet.Cells[1, 2].Value                  = "Ad";
                worksheet.Cells[1, 2].Style.Font.Size        = 12;
                worksheet.Cells[1, 2].Style.Font.Bold        = true;
                worksheet.Cells[1, 2].Style.Border.Top.Style = ExcelBorderStyle.Hair;
                worksheet.Column(2).Width = 25;

                worksheet.Cells[1, 3].Value                  = "Soyad";
                worksheet.Cells[1, 3].Style.Font.Size        = 12;
                worksheet.Cells[1, 3].Style.Font.Bold        = true;
                worksheet.Cells[1, 3].Style.Border.Top.Style = ExcelBorderStyle.Hair;
                worksheet.Column(3).Width = 25;

                worksheet.Cells[1, 4].Value                     = "TC";
                worksheet.Cells[1, 4].Style.Font.Size           = 12;
                worksheet.Cells[1, 4].Style.Font.Bold           = true;
                worksheet.Cells[1, 4].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                worksheet.Cells[1, 4].Style.Border.Top.Style    = ExcelBorderStyle.Hair;
                worksheet.Column(4).Width = 18;

                worksheet.Cells[1, 5].Value                     = "D.Tarihi";
                worksheet.Cells[1, 5].Style.Font.Size           = 12;
                worksheet.Cells[1, 5].Style.Font.Bold           = true;
                worksheet.Cells[1, 5].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                worksheet.Cells[1, 5].Style.Border.Top.Style    = ExcelBorderStyle.Hair;
                worksheet.Column(5).Width = 18;

                worksheet.Cells[1, 6].Value                  = "Telefon";
                worksheet.Cells[1, 6].Style.Font.Size        = 12;
                worksheet.Cells[1, 6].Style.Font.Bold        = true;
                worksheet.Cells[1, 6].Style.Border.Top.Style = ExcelBorderStyle.Hair;
                worksheet.Column(6).Width = 20;

                worksheet.Cells[1, 7].Value                = "İl";
                worksheet.Cells[1, 7].Style.Font.Size      = 12;
                worksheet.Cells[1, 7].Style.Font.Bold      = true;
                worksheet.Column(7).Style.Border.Top.Style = ExcelBorderStyle.Hair;
                worksheet.Column(7).Width = 20;

                worksheet.Cells[1, 8].Value                = "İlce";
                worksheet.Cells[1, 8].Style.Font.Size      = 12;
                worksheet.Cells[1, 8].Style.Font.Bold      = true;
                worksheet.Column(8).Style.Border.Top.Style = ExcelBorderStyle.Hair;
                worksheet.Column(8).Width = 20;

                worksheet.Cells[1, 9].Value                  = "Adres";
                worksheet.Cells[1, 9].Style.Font.Size        = 12;
                worksheet.Cells[1, 9].Style.Font.Bold        = true;
                worksheet.Cells[1, 9].Style.Border.Top.Style = ExcelBorderStyle.Hair;
                worksheet.Column(9).Width = 60;
                int count = 1;

                foreach (var karakter in model.ProjeKarakterleri)
                {
                    foreach (var oyuncu in karakter.Oyuncular)
                    {
                        if (oyuncu.KarakterDurumu == EnuKarakterDurumu.KabulEdildi || oyuncu.KarakterDurumu == EnuKarakterDurumu.Oynadi)
                        {
                            count++;

                            worksheet.Cells[count, 1].Value                  = count - 1;
                            worksheet.Cells[count, 1].Style.Font.Size        = 12;
                            worksheet.Cells[count, 1].Style.Border.Top.Style = ExcelBorderStyle.Hair;

                            worksheet.Cells[count, 2].Value                  = oyuncu.Adi;
                            worksheet.Cells[count, 2].Style.Font.Size        = 12;
                            worksheet.Cells[count, 2].Style.Border.Top.Style = ExcelBorderStyle.Hair;

                            worksheet.Cells[count, 3].Value                  = oyuncu.Soyadi;
                            worksheet.Cells[count, 3].Style.Font.Size        = 12;
                            worksheet.Cells[count, 3].Style.Border.Top.Style = ExcelBorderStyle.Hair;

                            worksheet.Cells[count, 4].Value                     = oyuncu.Tc;
                            worksheet.Cells[count, 4].Style.Font.Size           = 12;
                            worksheet.Cells[count, 4].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                            worksheet.Cells[count, 4].Style.Border.Top.Style    = ExcelBorderStyle.Hair;

                            worksheet.Cells[count, 5].Value = oyuncu.DogumTarihi;
                            worksheet.Cells[count, 5].Style.Numberformat.Format = "dd-MM-yyyy";
                            worksheet.Cells[count, 5].Style.Font.Size           = 12;
                            worksheet.Cells[count, 5].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
                            worksheet.Cells[count, 5].Style.Border.Top.Style    = ExcelBorderStyle.Hair;

                            worksheet.Cells[count, 6].Value                  = oyuncu.Cep ?? oyuncu.Telefon;
                            worksheet.Cells[count, 6].Style.Font.Size        = 12;
                            worksheet.Cells[count, 6].Style.Border.Top.Style = ExcelBorderStyle.Hair;

                            worksheet.Cells[count, 7].Value                  = oyuncu.Il;
                            worksheet.Cells[count, 7].Style.Font.Size        = 12;
                            worksheet.Cells[count, 7].Style.Border.Top.Style = ExcelBorderStyle.Hair;

                            worksheet.Cells[count, 8].Value                  = oyuncu.Ilce;
                            worksheet.Cells[count, 8].Style.Font.Size        = 12;
                            worksheet.Cells[count, 8].Style.Border.Top.Style = ExcelBorderStyle.Hair;

                            worksheet.Cells[count, 9].Value                  = oyuncu.Adres;
                            worksheet.Cells[count, 9].Style.Font.Size        = 12;
                            worksheet.Cells[count, 9].Style.Border.Top.Style = ExcelBorderStyle.Hair;
                        }
                    }
                }

                // So many things you can try but you got the idea.

                // Finally when you're done, export it to byte array.
                fileContents = package.GetAsByteArray();
            }

            if (fileContents == null || fileContents.Length == 0)
            {
                return(NotFound());
            }

            return(File(
                       fileContents: fileContents,
                       contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                       fileDownloadName: $"{model.MusteriAdi}-{model.ProjeAdi}-CastList.xlsx"
                       ));
        }