public static ResponsableClubModel ToModel(this ResponsableClub dto)
        {
            ResponsableClubModel result = new ResponsableClubModel();

            result.Id          = dto.Id;
            result.ClubId      = dto.ClubId;
            result.Nom         = dto.Nom;
            result.Prenom      = dto.Prenom;
            result.Adresse     = dto.Adresse;
            result.MailContact = dto.MailContact;
            result.Telephone   = dto.Telephone;

            return(result);
        }
        public static ResponsableClub ToDTO(this ResponsableClubModel model)
        {
            ResponsableClub result = new ResponsableClub();

            if (model.Id != 0)
            {
                result.Id = model.Id;
            }

            result.ClubId      = model.ClubId;
            result.Nom         = model.Nom;
            result.Prenom      = model.Prenom;
            result.Adresse     = model.Adresse;
            result.MailContact = model.MailContact;
            result.Telephone   = model.Telephone;

            return(result);
        }
Пример #3
0
        /// <summary>
        /// Saves the specified files.
        /// </summary>
        /// <param name="files">The files.</param>
        /// <returns></returns>
        public JsonResult Save(IEnumerable <HttpPostedFileBase> files)
        {
            // The Name of the Upload component is "files"
            if (files != null)
            {
                foreach (var file in files)
                {
                    // Some browsers send file names with full path.
                    // We are only interested in the file name.
                    var fileName     = Path.GetFileName(file.FileName);
                    var physicalPath = Path.Combine(Server.MapPath("~/App_Data/Imports"), fileName);

                    // The files are not actually saved in this demo
                    file.SaveAs(physicalPath);

                    IExcelDataReader excelReader = null;

                    try
                    {
                        using (FileStream stream = System.IO.File.Open(physicalPath, FileMode.Open, FileAccess.Read))
                        {
                            excelReader = ExcelReaderFactory.CreateBinaryReader(stream, false, ReadOption.Loose);
                            DataSet result = excelReader.AsDataSet();

                            if (result.Tables != null && result.Tables.Count >= 3)
                            {
                                var sheetEncadrants   = result.Tables[2];
                                var sheetCompetiteurs = result.Tables[1];

                                if (sheetCompetiteurs.Rows.Count > 2)
                                {
                                    var    thirdRow = sheetCompetiteurs.Rows[2];
                                    string clubId   = thirdRow.ItemArray[14].ToString();
                                    while (clubId.Length < 7)
                                    {
                                        clubId = "0" + clubId;
                                    }

                                    Club clubFromXLS = new Club
                                    {
                                        Nom = thirdRow.ItemArray[13].ToString(),
                                        NumeroAffiliation = clubId
                                    };
                                    ResponsableClub responsableFromXLS = new ResponsableClub
                                    {
                                        Nom         = thirdRow.ItemArray[15].ToString(),
                                        Prenom      = thirdRow.ItemArray[16].ToString(),
                                        Adresse     = thirdRow.ItemArray[17].ToString(),
                                        Telephone   = thirdRow.ItemArray[18].ToString(),
                                        MailContact = thirdRow.ItemArray[19].ToString()
                                    };

                                    if (String.IsNullOrWhiteSpace(responsableFromXLS.Telephone))
                                    {
                                        responsableFromXLS.Telephone = "00-00-00-00-00";
                                    }

                                    List <Participant> competiteursFromXLS = new List <Participant>();

                                    for (int i = 2; i < sheetCompetiteurs.Rows.Count; i++)
                                    {
                                        var localRow = sheetCompetiteurs.Rows[i];
                                        if (localRow.ItemArray[0].ToString() == string.Empty)
                                        {
                                            break;
                                        }

                                        var comp = ExcelConverterHelper.ConvertFromXLS(localRow);
                                        competiteursFromXLS.Add(comp);
                                    }

                                    List <Encadrant> encadrantsFromXLS = new List <Encadrant>();
                                    for (int i = 2; i < sheetEncadrants.Rows.Count; i++)
                                    {
                                        var localRow = sheetEncadrants.Rows[i];
                                        if (localRow.ItemArray[0].ToString() == string.Empty)
                                        {
                                            break;
                                        }

                                        List <Disponibilite> dispo = new List <Disponibilite>();
                                        //colonnes 8 à 13
                                        if (ExcelConverterHelper.ConvertToBool(localRow.ItemArray[8].ToString()))
                                        {
                                            dispo.Add(new Disponibilite
                                            {
                                                Date  = new DateTime(2017, 4, 29),
                                                Matin = false,
                                                Role  = Role.Arbitre
                                            });
                                        }
                                        if (ExcelConverterHelper.ConvertToBool(localRow.ItemArray[9].ToString()))
                                        {
                                            dispo.Add(new Disponibilite
                                            {
                                                Date  = new DateTime(2017, 4, 30),
                                                Matin = true,
                                                Role  = Role.Arbitre
                                            });
                                        }
                                        if (ExcelConverterHelper.ConvertToBool(localRow.ItemArray[10].ToString()))
                                        {
                                            dispo.Add(new Disponibilite
                                            {
                                                Date  = new DateTime(2017, 4, 30),
                                                Matin = false,
                                                Role  = Role.Arbitre
                                            });
                                        }
                                        if (ExcelConverterHelper.ConvertToBool(localRow.ItemArray[11].ToString()))
                                        {
                                            dispo.Add(new Disponibilite
                                            {
                                                Date  = new DateTime(2017, 4, 29),
                                                Matin = false,
                                                Role  = Role.Administrateur
                                            });
                                        }
                                        if (ExcelConverterHelper.ConvertToBool(localRow.ItemArray[12].ToString()))
                                        {
                                            dispo.Add(new Disponibilite
                                            {
                                                Date  = new DateTime(2017, 4, 30),
                                                Matin = true,
                                                Role  = Role.Administrateur
                                            });
                                        }
                                        if (ExcelConverterHelper.ConvertToBool(localRow.ItemArray[13].ToString()))
                                        {
                                            dispo.Add(new Disponibilite
                                            {
                                                Date  = new DateTime(2017, 4, 30),
                                                Matin = false,
                                                Role  = Role.Administrateur
                                            });
                                        }

                                        encadrantsFromXLS.Add(new Encadrant
                                        {
                                            Nom            = localRow.ItemArray[4].ToString(),
                                            Prenom         = localRow.ItemArray[5].ToString(),
                                            MailContact    = localRow.ItemArray[6].ToString(),
                                            EstCompetiteur = ExcelConverterHelper.ConvertToBool(localRow.ItemArray[7].ToString()),
                                            TailleTenue    = ExcelConverterHelper.ConvertToTaille(localRow.ItemArray[14].ToString()),
                                            Sexe           = ExcelConverterHelper.ConvertToGenre(localRow.ItemArray[15].ToString()),
                                            Disponibilites = dispo
                                        });
                                    }

                                    clubFromXLS.Responsable  = responsableFromXLS;
                                    clubFromXLS.Participants = competiteursFromXLS;
                                    clubFromXLS.Encadrants   = encadrantsFromXLS;

                                    var teamMembers = competiteursFromXLS.Cast <Competiteur>().Where(c => (c.InscritPourSongLuyen || c.InscritPourQuyenDongDien) && c.NumeroEquipe > 0).OrderBy(c => c.NumeroEquipe);
                                    var equipes     = new List <Participant>();

                                    foreach (var member in teamMembers)
                                    {
                                        var team = equipes.Cast <Equipe>().FirstOrDefault(e => e.Numero == member.NumeroEquipe);
                                        if (team == null)
                                        {
                                            var newTeam = new Equipe();
                                            newTeam.Nom          = member.Nom;
                                            newTeam.Numero       = member.NumeroEquipe;
                                            newTeam.Competiteurs = new List <Competiteur>();
                                            newTeam.Competiteurs.Add(member);
                                            equipes.Add(newTeam);
                                        }
                                        else
                                        {
                                            team.Nom      = string.Format("{0}/{1}", team.Nom, member.Nom);
                                            team.Prenom   = string.Format("{0}/{1}", team.Prenom, member.Prenom);
                                            team.TeamName = string.Format("Equipe {0}", team.Numero);
                                            team.Competiteurs.Add(member);
                                        }
                                    }

                                    if (equipes.Count > 0)
                                    {
                                        clubFromXLS.Participants = clubFromXLS.Participants.Union(equipes).ToList();
                                    }

                                    var clubFromDb = this.repository.Read(club => string.Compare(club.NumeroAffiliation, clubFromXLS.NumeroAffiliation) == 0).FirstOrDefault();
                                    if (clubFromDb == null)
                                    {
                                        //ajout
                                        this.repository.Create(clubFromXLS);
                                    }
                                    else
                                    {
                                        //mise à jour
                                        this.repository.Delete(clubFromDb);
                                        this.repository.Create(clubFromXLS);
                                    }

                                    excelReader.Close();

                                    string clubDirectory = Path.Combine(Server.MapPath("~/App_Data/Imports"), clubFromXLS.Nom);
                                    if (!Directory.Exists(clubDirectory))
                                    {
                                        Directory.CreateDirectory(clubDirectory);
                                    }

                                    if (System.IO.File.Exists(Path.Combine(clubDirectory, fileName)))
                                    {
                                        System.IO.File.Delete(Path.Combine(clubDirectory, fileName));
                                    }
                                    System.IO.File.Move(physicalPath, Path.Combine(clubDirectory, fileName));
                                }
                            }
                        }
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }
            return(Json(string.Empty));
        }